web.config中的多个/不同身份验证设置

时间:2008-11-25 20:54:03

标签: asp.net authentication web-config location

如何为网络应用的不同部分设置不同的身份验证标记?说我有:

/
/folder1/
/folder2/

是否可以为每个文件夹指定不同的<authentication/>标记?

我希望folder1使用Windows身份验证,但folder2使用Forms身份验证。

我尝试使用<location/>标记,但看起来<authentication/>代码中的<location/>标记看起来不像,至少不是通过VS 2008内置的内置网络服务器

这出错了 - 错误3在应用程序级别之外使用注册为allowDefinition ='MachineToApplication'的部分是错误的。此错误可能是由于未在IIS中将虚拟目录配置为应用程序引起的。

<location path="/folder1">
    <system.web>
      <authentication mode="Forms" />
      <authorization>
        <deny users="?"/>
      </authorization>
    </system.web>
  </location>

3 个答案:

答案 0 :(得分:11)

您只能在顶级<authentication />上拥有web.config。您可能必须创建多个应用程序。即,您可以在应用程序中创建应用程序,并在每个应用程序中使用不同的身份验证模式。

答案 1 :(得分:1)

这些设置仅在ASP.Net应用程序的根级别有效。要在子文件夹中使用不同的设置,您需要进入IIS并将该子文件夹设置为新的应用程序。

完成此操作后,该文件夹将在IIs管理器中显示不同的图标。在子文件夹中,创建一个新的web.config文件并在那里添加新的身份验证设置。

Creating Applications提供了更多信息。

答案 2 :(得分:0)

我认为您可以将folder1上的表单身份验证授权设置为

<allow users="*" />

然后通过设置文件夹的Windows权限来控制Windows访问。

我没有尝试过,但我想不出为什么那样做不起作用。