如何为网络应用的不同部分设置不同的身份验证标记?说我有:
/
/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>
答案 0 :(得分:11)
您只能在顶级<authentication />
上拥有web.config
。您可能必须创建多个应用程序。即,您可以在应用程序中创建应用程序,并在每个应用程序中使用不同的身份验证模式。
答案 1 :(得分:1)
这些设置仅在ASP.Net应用程序的根级别有效。要在子文件夹中使用不同的设置,您需要进入IIS并将该子文件夹设置为新的应用程序。
完成此操作后,该文件夹将在IIs管理器中显示不同的图标。在子文件夹中,创建一个新的web.config文件并在那里添加新的身份验证设置。
Creating Applications提供了更多信息。
答案 2 :(得分:0)
我认为您可以将folder1上的表单身份验证授权设置为
<allow users="*" />
然后通过设置文件夹的Windows权限来控制Windows访问。
我没有尝试过,但我想不出为什么那样做不起作用。