2

我已经使用 Windows Auth 创建了一个 MVC4 Web 应用程序。是否可以定义哪些用户可以使用类似的东西访问: [Authorize(Roles="Admin")] 而不依赖于 AD 即在数据库表或应用程序本身中指定?

4

1 回答 1

2

绝对地。您需要创建一个自定义角色提供程序,以根据您在后端拥有的任何内容检查角色成员资格。

自定义角色提供程序派生自System.Web.Security.RoleProvider,您至少需要覆盖GetRolesForUserIsUserInRole方法。

GetRolesForUser方法是Authorize属性使用的方法。用户通过身份验证后,该属性使用用户的 SamAccountName 调用此方法,并期望该方法返回string[]包含用户所属角色名称的 a。

有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/8fw7xh74(v=vs.100).aspx

于 2012-10-03T22:30:27.843 回答