0

ADには、例role1、role2のようないくつかの役割があります。コントローラーの認証に使用できる役割を、アプリケーションで作成したいと思います。もちろん、私はそのようなものを使うことができます:

[Authorize(Roles = "role1")]

ただし、誰かがADでグループの名前を変更した場合は、それを使用したすべてのコントローラーでこのロールを変更する必要があります。だから私はコントローラーで使用するアプリで自分の役割を定義しようとしています:

MyRole = role1

また、ここでは、アプリで複数の役割を1つに設定できます。私はそのようなものを使おうとしています:

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認証では機能しません。

それを行う方法はありますか?

4

1 に答える 1

0

このソリューションは、認証管理を一元化するための優れた方法です。新しい役割を作成することはできません。正直なところ、それはおそらく良い考えではありません。あなたがそれらを制御していない場合、あなたが示唆するように..誰でも、おそらくあなたがいたるところに役割を作成することに満足しないでしょう。

さらに、ロールを作成するにはWebアプリのドメイン管理者権限を付与する必要がありますが、これは適切なセキュリティ対策ではありません。

于 2012-04-20T14:22:56.890 に答える