次の方法で共有


ActiveDirectoryMembershipProvider.GetUserNameByEmail(String) メソッド

定義

指定した電子メール アドレスに関連付けられているユーザー名を取得します。

public:
 override System::String ^ GetUserNameByEmail(System::String ^ email);
public override string GetUserNameByEmail (string email);
override this.GetUserNameByEmail : string -> string
Public Overrides Function GetUserNameByEmail (email As String) As String

パラメーター

email
String

検索対象の電子メール アドレス。

戻り値

指定した電子メール アドレスに関連付けられているユーザー名。

例外

email が 256 文字を超えています。

- または -

トリム後の email が空です。

同じ電子メール アドレスを持つユーザーがデータ ストア内に複数存在し、かつ、RequiresUniqueEmail プロパティ値が true です。

プロバイダーが初期化されていません。

注釈

このメソッドは、 クラスによって呼び出され Membership 、ユーザーのメール アドレスに基づいて Active Directory データ ストアからユーザー名を取得します。

メンバーシップ データ ストア内の複数のユーザーが同じメール アドレスを持っている場合は、最初に見つかったユーザー名が返されます。 アプリケーション構成ファイルで membership 要素 (ASP.NET Settings Schema) 要素の 属性を にtrue設定requiresUniqueEmailして、データベース内の各メール アドレスが一意であることを確認できます。

email パラメーター値の先頭と末尾の空白はトリムされます。 トリミング後にメール アドレスが空の場合は、 ArgumentException がスローされます。 電子メール アドレスが の場合、 nullActive Directory データ ストア内のすべてのユーザー名が検索され、最初のユーザー名が返されます。

クラスによって ActiveDirectoryMembershipProvider 発行された検索クエリがディレクトリ サーバーのパフォーマンスに悪影響を与えないことを確認するまで、運用システムでの検索を有効にしないことをお勧めします。

重要

メソッドはGetUserNameByEmail、 プロパティfalseが の場合EnableSearchMethodsでも実行されます。

ActiveDirectoryMembershipProviderクラスはステートレス Web 環境用に設計されているため、基になる System.DirectoryServices API によって公開されるページングの最適化を使用できません。 つまり、大きなディレクトリに対する検索中のページング操作は非常に高価であり、回避する必要があります。 検索操作は、接続文字列で構成されているディレクトリ サーバー、またはドメインを指す接続文字列の場合は自動的に選択されたサーバーに対して常に発行されます。 プロバイダーは、その検索方法にグローバル カタログを使用しません。

プロバイダーは、接続文字列で指定された検索ポイントから始まるサブツリー検索を使用します。 接続文字列の ActiveDirectoryMembershipProvider 詳細については、クラスのトピックを参照してください。

適用対象

こちらもご覧ください