我使用Windows Auth创建了一个MVC4 Web App。是否可以定义哪些用户可以使用以下内容访问:[授权(角色=“管理员”)]而不依赖于AD,即在数据库表中或在应用程序本身内指定?
答案 0 :(得分:2)
绝对。您需要创建一个自定义角色提供程序,根据后端的内容检查角色成员身份。
自定义角色提供程序派生自System.Web.Security.RoleProvider
,您需要至少覆盖GetRolesForUser
和IsUserInRole
方法。
GetRolesForUser
方法是Authorize
属性使用的方法。在用户通过身份验证后,该属性使用用户的SamAccountName调用此方法,并期望该方法返回包含用户所属角色名称的string[]
。
有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/8fw7xh74(v=vs.100).aspx