我有一个实现窗体身份验证站点范围内现有的ASP.NET应用程序。 该应用程序部署在多个实例(例如,customer1表,customer2表,测试,开发,等...),每个实例都有一个单独的数据库。 SSL是在玩。 实例配置是通过一个XML配置文件。
我有一个新的规定,允许某些数据,我想实现作为公共Web服务的上传/下载。
这里我的初始想法是选择性地禁用表单认证为应用程序(例如,〜/服务)的子目录,然后经由SOAP报头或类似做验证。
但是,我没有找到一个方法来选择性地禁用窗体身份验证。
问:有没有办法做到这一点? 我试着在web配置的<location>标记无济于事。
如果没有,你有什么了解如何设置此建议? 我能想到的下列选项:
1)在我的解决方案创建一个新的“服务”项目,然后配置在每个实例目录中的单独的IIS ASP.NET应用程序。 (临:方便地访问实例配置,这可能在未来需要缺点:每个相关实例配置的负担)。
2)创建引用所需的组件从所述应用溶液的单独的“服务”溶液和主机它作为一个单独的ASP.NET应用程序。 然后,查找基于在SOAP报头提供的用户名的数据库连接字符串。 (临:单一的应用程序在IIS中配置缺点:没有容易获得的实例配置。)
3)??
澄清:我没有看到这里的答案: 覆盖ASP.NET窗体身份验证的单页 ,而是使用了位置标签的是没有帮助(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>