6

SQL ではなく Active Directory メンバーシップを利用しようとしていますが、オンラインで入手できるドキュメントは非常に限られています。問題なくアプリケーションをドメイン コントローラに接続できましたが、「Context.User.Identity.Name」を使用すると、DOMAIN\User が表示されます。基本的にドリルダウンしてフルネームやメールアドレスなどの情報を取得したい

便利なリンクが必要なだけですが、行った検索ではどこにもアクセスできなかったようです!

どうもありがとう

4

3 に答える 3

0

このドキュメントを試しましたか?

http://msdn.microsoft.com/en-US/library/system.web.security.activedirectorymembershipprovider%28v=vs.90%29.aspx

助けられる?

于 2011-01-12T16:56:29.960 に答える
0

これにより、少し手がかりが得られるはずです:http: //msdn.microsoft.com/en-us/library/ms973834.aspxこれ は、検索結果で試してみたいLDAPプロパティのリストです。http://www.computerperformance.co.uk/Logon/LDAP_attributes_active_directory.htm

于 2011-01-12T16:57:38.563 に答える
0

Active Directory を使用している場合は、Windows 認証を使用している可能性があります。もしそうなら、あなたがする必要があるのは次のことだけです:

  1. 参照System.DirectoryServices.AccountManagement

  2. コード内 (おそらくコントローラー アクションまたはモデル コンストラクター)

    // ユーザー ルックアップのコンテキストとしてドメインを確立します var principalContext = new PrincipalContext(ContextType.Domain, "domainName");

    // 現在のユーザーの UserPrincipal オブジェクトを取得します var userPrincipal.FindByIdentity(principalContext, @User.Identity.Name)

    // 例 var email = userPrincipal.EmailAddress;

ノート:

  • これが機能するのはUser.Identity、現在のWindows 認証手段が であり、そのプロパティを使用して AD を検索できるためです。HttpContextWindowsIdentityName

  • 現在のユーザーを検索することに限定されません。渡された任意の値を検索するために使用できFindByIdentity()、このメソッドは他のプリンシパル (例: GroupPrincipal) に存在します。名前の代わりに SID など、別のタイプで検索するように指定することもできます。

楽しみ!

于 2012-10-30T21:15:37.393 に答える