使用Active Directory的ASP.NET MVC3应用程序的自定义角色

时间:2012-04-20 11:21:21

标签: asp.net asp.net-mvc-3 active-directory

我在AD中有一些角色,例如role1,role2 我想在应用程序中创建角色,我可以使用它来验证控制器。 当然我可以使用类似的东西:

[Authorize(Roles = "role1")]

但是如果有人在AD中更改了组的名称,那么我必须在我使用它的所有控制器中更改此角色。所以我试图在app中定义自己的角色,我将在控制器中使用:

MyRole = role1

此外,我可以在App中添加多个角色。 我正在尝试使用类似的东西:

string UserName = HttpContext.Current.User.Identity.Name;
string[] roles = Roles.GetRolesForUser(UserName);
if (roles.Contains("role"))
{
    Roles.CreateRole("MyRole");
    Roles.AddUserToRole(UserName, "MyRole");
}

但是方法 CreateRole AddUserToRole 无法使用Windows身份验证。

知道该怎么做吗?

1 个答案:

答案 0 :(得分:0)

该解决方案是集中身份验证管理的好方法。它不会允许你创建新的角色,老实说,这可能不是一个好主意。如果你不能控制它们,就像你暗示的那样......无论你是谁,都可能不会满意你在不知名的地方创造角色。

此外,您必须授予您的网络应用程序域管理员权限才能创建角色,这不是一个好的安全措施。