如果我在asp.net mvc web项目中使用Windows身份验证,与基于表单的身份验证不同,我将不会获得任何成员资格数据库。但我仍然可以使用角色。所以我有以下问题: -
那么这些角色的管理位置,以及在使用Windows身份验证时如何将用户分配给角色?
这些角色是仅在Active Directory中管理和创建的吗?如果我想将用户添加到特定角色,我将在活动目录中执行此操作?
所以有人可以提出建议吗?
修改 现在如果我理解你的观点,那就说我想限制只对我们公司的管理员调用一个动作方法。目前在活动目录中我们有一组名为“OurCompanyAdminsitrators”的用户
所以,让我说我创建一个新的asp.net mvc5 web项目,并指定使用Windows身份验证,然后在我的action方法中我写了以下内容: -
[Authorize(Roles = "OurCompanyAdminsitrators")]
asp.net mvc5会识别OurCompnayAdministrators用户组吗?或者我需要为我的asp.net mvc web项目做额外的工作才能读取和检查活动目录组?
答案 0 :(得分:1)
我们可以使用SimpleMembership
提供商。 " SimpleMembership:ASP.NET"。
http://www.codeproject.com/Articles/689801/Understanding-and-Using-Simple-Membership-Provider
编辑:
我们可以使用SqlRoleProvider
。
http://msdn.microsoft.com/en-us/library/system.web.security.roleprovider.aspx
答案 1 :(得分:1)
我认为有很多方法可以解决这个问题,2我可以想到这一点:
使用Active Directory管理角色,并根据需要将用户添加到Active Directory组。然后,您可以通过用户身份访问它们,您可以从http上下文中获取它们。
创建一个单独的服务/组件来管理您的安全性,您可以将用户凭据映射到您完全远离AD定义的角色。显然,这里有更多的时间投资,你需要复制一些信息。