我正在创建一个需要Windows身份验证的Intranet网站。我已经设置了所有内容,或者我认为我已经设置了使用Windows身份验证和在数据库中管理的角色。这很重要,因为我无法使用Active Directory组和角色。
有效。当我进入网站时,它显示我的Windows用户名,可通过User.Identity.Name
访问。我可以使用User.IsInRole("roleName")
验证角色,也可以。
现在我遇到的问题是,当我使用Membership.GetUser
和Membership.GetAllUsers
时,我总是得到null和一个空集合。
我的RoleManager提供商是:
<add
name="SqlRoleManager"
type="System.Web.Security.SqlRoleProvider"
connectionStringName="ApplicationServices"
applicationName="/appName"
/>
我的会员提供者就是这个:
<add
name="AspNetSqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="ApplicationServices"
applicationName="/appName"
/>
我错过了什么或者我的配置错了吗? 谢谢!
答案 0 :(得分:2)
你为什么要打电话给Membership.GetUser?您已通过Windows身份验证进行身份验证。如果你想使用Windows身份验证的成员身份(为什么,我不知道),你必须跳过更多的箍。
您可以使用ActiveDirectoryMembershipProvider,而不是SqlMembershipProvider。这使您可以调用GetUser并检索AD信息。
您可以在登录时将Windows身份验证信息复制到SqlMembership数据库中。
您可以创建自定义成员资格提供程序,以便您自己进行所有身份验证。
所以,第一个问题是你为什么要使用会员资格?