1

Authorize一部のページへのアクセスを制限するために指定された役割を持つ属性を使用する Web アプリケーションがあります。

[Authorize(Roles = "AD_group1, AD_group2")]

groupId問題は、許可されたユーザー (int または string に関係なく) に対して何らかの Active Directory を取得する方法はありますか?

upd: 基本的な考え方は、グループごとに個別にする必要があるテンプレートを含むテーブルをデータベースに保存することです。たとえば、 のユーザーは、group1典型的な質問に迅速に回答するためのテンプレートをいくつか持つことができますがgroup2、それらのテンプレートは何も持っていません。または、他のテンプレートをいくつか持っています。

4

1 に答える 1

3

.NET 3.5 以降を使用している場合は、System.DirectoryServices.AccountManagement(S.DS.AM) 名前空間を確認してください。ここでそれについてすべて読んでください:

基本的に、ドメイン コンテキストを定義し、AD でユーザーやグループを簡単に見つけることができます。

// set up domain context
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain))
{
   // find a user
   UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "SomeUserName");
   // or if you want the currently logged in user - you can also use:
   // UserPrincipal user = UserPrincipal.Current;

   if(user != null)
   {
       // get all groups the user is a member of
       foreach(GroupPrincipal group in user.GetAuthorizationGroups())
       {
           string distinguishedName = group.DistinguishedName;
           Guid groupGuid = group.Guid;
       }
   }
}

新しい S.DS.AM を使用すると、AD でユーザーやグループを簡単に操作できます。

于 2013-03-01T13:21:55.973 に答える