Forms身份验证应用程序中的ASP.NET Web服务
|
我有一个现有的ASP.NET应用程序在站点范围内实现表单身份验证.应用程序部署在多个实例中(例如,customer1,customer2,test,dev等),每个实例都有一个单独的数据库. SSL正在发挥作用.实例配置是通过XML配置文件. 我有一个新的要求允许上传/下载某些数据,我想将其作为公共Web服务实现. 我最初的想法是有选择地禁用应用程序子目录的表单身份验证(例如,/ Services),然后通过SOAP标头或类似方法进行身份验证. 但是,我没有找到一种方法来有选择地禁用表单身份验证. 问题:有办法做到这一点吗?我试过了< location> web配置中的标签无效. 如果没有,您对如何进行此设置有何建议?我可以想到以下选项: 1)在我的解决方案中创建一个新的“服务”项目,然后在每个实例中的该目录上配置一个单独的IIS ASP.NET应用程序. (Pro:轻松访问实例配置,将来可能需要.Con:每个相关实例的配置负担). 2)创建一个单独的“服务”解决方案,该解决方案引用应用程序解决方案中所需的程序集并将其作为单独的ASP.NET应用程然后,根据SOAP Header中提供的UserName查找db连接字符串. (Pro:在IIS中配置单个应用程序.Con:无法轻松访问实例配置.) 3)?? 澄清:我确实在这里看到了答案:Override ASP.NET forms authentication for a single page,但是使用位置标记没有帮助(仍然重定向对Web服务的请求).我的web.config中的相关部分如下所示: <system.web>
<authentication mode="Forms">
<forms loginUrl="Login.aspx"/>
</authentication>
<authorization>
<deny users="?"/>
<allow users="*"/>
</authorization>
</system.web>
<location path="~/Services/MyService.asmx">
<system.web>
<authentication mode="None" />
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
解决方法我认为位置标记可以工作,您可以在其中指定services文件夹并允许所有用户,例如:<location path="services">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
但是你说这没用,你试过把一个web.config文件放在services文件夹中并禁用表单身份验证并允许该文件中的所有用户吗? (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Asp.Net MVC缺少样式并默认为登录页面
- asp.net – Web.config:在xml属性中放一个注释
- asp.net-mvc – DataAnnotations动态附加属性
- asp.net-mvc – 使用Ninject注册到自定义成员资格提供程序
- ASP.NET AJAX:在页面加载完成后触发UpdatePanel
- asp.net – 如何使用在web.config文件
- asp.net-mvc – 在使用WEB API时,如何从POST中提取HttpResp
- asp.net – NHibernate – ManagedWebSessionContext和WebS
- WCF,ASP.NET成员资格提供者和认证服务
- asp.net – 如何通过LINQ获得第一级的孩子
