ASP.NET Web服务中窗体身份验证的应用(ASP.NET Web Service inside

2019-06-25 17:38发布

我有一个实现窗体身份验证站点范围内现有的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>

Answer 1:

我想了位置标签会的工作,在那里你指定服务文件夹,并允许所有用户,是这样的:

<location path="services">
      <system.web>
         <authorization>
            <allow users="*"/>
         </authorization>
      </system.web>
</location>

但你说,没有工作,你有没有试图把web.config文件中的服务文件夹,并禁用窗体身份验证,并允许所有用户在该文件中?



Answer 2:

你也可以在设置为匿名访问控制服务文件夹(覆盖)的web.config文件。



Answer 3:

什么工作对我来说是让所有用户在我的web服务所在的文件夹中访问用户。 首先,我加入该文件夹中的配置文件,并插入下面的代码,以允许所有的用户。

<authorization>
        <allow users="*"/>
      </authorization>
    </system.web>


文章来源: ASP.NET Web Service inside Forms Authentication Application