【发布时间】:2012-08-08 17:28:34
【问题描述】:
我的 Web 应用程序中有两个文件夹,第一个用于 normal_user,第二个用于管理员,为了保护它们,我在 asp.net 配置中创建了两个角色,一切正常,但问题是我想要使用 Windows 身份验证而不是 Forms 身份验证来验证我的用户,我应该做什么?
【问题讨论】:
我的 Web 应用程序中有两个文件夹,第一个用于 normal_user,第二个用于管理员,为了保护它们,我在 asp.net 配置中创建了两个角色,一切正常,但问题是我想要使用 Windows 身份验证而不是 Forms 身份验证来验证我的用户,我应该做什么?
【问题讨论】:
清单 1:通过 web.config 文件拒绝所有用户。向 windows 声明您的模式:
<system.web>
<authentication mode="Windows" />
<authorization>
<deny users="*" />
</authorization>
</system.web>
在下面的链接中也向下滚动:“验证和授权组:
根据我的书,解释了所有 4 种:
http://www.wrox.com/WileyCDA/Section/ASP-NET-3-5-Windows-Based-Authentication.id-310905.html
【讨论】:
您可以通过Windows Authentication Provider 或Windows Authentication 访问
你应该更新你的 authentication 部分
<system.web>
<authentication mode="Windows"/>
</system.web>
要为您的 Web 应用程序启用模拟,在应用程序的 Web.config 文件设置标识元素的模拟属性 为true,如下代码示例所示。
<system.web>
<authentication mode="Windows"/>
<identity impersonate="true"/>
</system.web>
当您使用 Windows 身份验证时,用户名采用 domainName\userName 形式。 >Windows 组被用作角色,他们承担 形式为 domainName\windowsGroupName。当地知名团体,例如 使用“BUILTIN”前缀引用管理员和用户 如此处所示。
<authorization>
<allow users="DomainName\Bob, DomainName\Mary" />
<allow roles="BUILTIN\Administrators, DomainName\Manager" />
<deny users="*" />
</authorization>
【讨论】:
如果您想使用自己的 RoleProvider,则需要使用表单身份验证。但是,您可以使用内置的 ActiveDirectoryMembershipProvider Class 针对 Active Directory 对用户进行身份验证。
【讨论】: