2012-04-20 32 views
0

我在我的AD中有一些角色,例如角色1,角色2 我想在应用程序中创建角色,我可以使用它来验证控制器。 我当然可以使用类似的东西:使用活动目录的ASP.NET MVC3应用程序的自定义角色

[Authorize(Roles = "role1")] 

但是,当有人在公元更改组的名称的话,那么我必须在我用它所有的控制器改变这个角色。所以我想定义应用程序我自己的角色,我将在控制器使用:

MyRole = role1 

而且我在这里可以把多个角色,以一个在应用程序。 我试图用类似的东西:

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

但方法CREATEROLEAddUserToRole无法使用Windows身份验证工作。

任何想法如何做到这一点?

+0

这里我找到了很好的解决方案。我现在就用这个​​。有更好的解决方案http://www.codecapers.com/post/Using-Custom-Security-Attributes-in-ASPNET-MVC.aspx – WooCaSh 2012-04-20 11:41:16

+0

您应该编辑您的问题,不要将其他信息作为评论发布。 – 2012-04-20 14:21:25

回答

0

该解决方案是集中认证管理的好方法。它不会让你创造新的角色,说实话,这可能不是一个好主意。如果你无法控制它们,就像你暗示的那样......无论是谁,都可能不会对你满意地创造角色而感到高兴。

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