web.config 中的多个/不同身份验证设置
Posted
技术标签:
【中文标题】web.config 中的多个/不同身份验证设置【英文标题】:Multiple/Different authentication settings in web.config 【发布时间】:2010-09-24 01:06:09 【问题描述】:我将如何为我的网络应用程序的不同部分设置不同的身份验证标签?说我有:
/
/folder1/
/folder2/
是否可以为每个文件夹指定不同的<authentication/>
标签?
我希望文件夹 1 使用 Windows 身份验证,但文件夹 2 使用表单身份验证。
我尝试在<location/>
标记中进行操作,但看起来您不能在<location/>
标记中使用<authentication/>
标记,至少不能通过内置网络服务器的VS 2008。
这个错误说 - 错误 3 使用注册为 allowDefinition='MachineToApplication' 的部分超出应用程序级别是错误的。此错误可能是由未在 IIS 中配置为应用程序的虚拟目录引起的。
<location path="/folder1">
<system.web>
<authentication mode="Forms" />
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
【问题讨论】:
【参考方案1】:您只能在***web.config
上拥有<authentication />
。您可能必须创建多个应用程序。即您可以在一个应用程序中创建一个应用程序,并在每个应用程序中使用不同的身份验证模式。
【讨论】:
【参考方案2】:我认为您可以将folder1上的表单身份验证权限设置为
<allow users="*" />
然后通过设置文件夹的windows权限来控制windows访问。
我没有尝试过,但我想不出为什么它不起作用。
【讨论】:
【参考方案3】:这些设置仅在 ASP.Net 应用程序的根级别有效。要在子文件夹中使用不同的设置,您需要进入 IIS 并将该子文件夹设置为新应用程序。
完成此操作后,该文件夹将在 IIs 管理器中显示不同的图标。在您的子文件夹中,创建一个新的 web.config 文件并在其中添加新的身份验证设置。
更多信息请访问Creating Applications。
【讨论】:
对,但是好像在VS2008调试器中,它不能把这些子文件夹当作应用程序文件夹,我需要通过推送到IIS服务器来测试 如果您使用的是内置的 Visual Studio Web 服务器,那么是的,您是正确的,您需要在 IIS 中设置应用程序。以上是关于web.config 中的多个/不同身份验证设置的主要内容,如果未能解决你的问题,请参考以下文章
允许对 web.config 中的单个文件夹进行匿名身份验证?
asp.net web.config中基于多个角色的文件夹授权
Asp.net 形成身份验证 cookie 不遵守 IIS7 的超时