2012-04-20 61 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

該解決方案是集中認證管理的好方法。它不會讓你創造新的角色,說實話,這可能不是一個好主意。如果你無法控制它們,就像你暗示的那樣......無論是誰,都可能不會對你滿意地創造角色而感到高興。

更重要的是,您必須授予您的網絡應用程序域管理員權限才能創建角色,這不是一種好的安全措施。