다음을 통해 공유


SqlMembershipProvider.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

검색할 전자 메일 주소입니다.

반환

지정된 이메일 주소와 연결된 사용자 이름입니다. 일치하는 항목이 없으면 이 메서드가 null을 반환합니다.

예외

email이 256자를 초과하는 경우

데이터베이스에 이메일 주소가 같은 사용자가 둘 이상이고 RequiresUniqueEmailtrue인 경우

예제

다음 코드 예제에서는 지정된 전자 메일 주소의 사용자 이름을 검색합니다.

참고

이 예제에서는 클래스를 Membership 사용하여 Web.config 파일에서 지정된 defaultProvider 를 로 호출 SqlMembershipProvider 합니다. 기본 공급자에 형식 SqlMembershipProvider으로 액세스해야 하는 경우 클래스의 속성을 캐스팅할 ProviderMembership 수 있습니다. 특정 공급자 형식으로 구성된 다른 공급자에 액세스하려면 클래스의 Membership 속성을 사용하여 구성된 이름으로 Providers 액세스하고 특정 공급자 유형으로 캐스팅할 수 있습니다.

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

public void Search_OnClick(object sender, EventArgs args)
{
  string username = Membership.GetUserNameByEmail(EmailTextBox.Text);

  if (username == null)
  {
    Msg.Text = "Email address " + Server.HtmlEncode(EmailTextBox.Text) + " is not found. Please reenter.";
  }
  else
  {
    Msg.Text = "The user name for " + Server.HtmlEncode(EmailTextBox.Text) + 
               " is " + Server.HtmlEncode(username) + ".";
  }

}

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: Retrieve Username By Email</title>
</head>
<body>

<form id="form1" runat="server">
  <h3>Forgot your Username? Search for it by email address.</h3>

  <asp:Label id="Msg" runat="server" ForeColor="maroon" /><br />

  Email address: <asp:Textbox id="EmailTextBox" Columns="30" runat="server" />
                  <asp:RequiredFieldValidator id="EmailRequiredValidator" runat="server"
                                        ControlToValidate="EmailTextBox" ForeColor="red"
                                        Display="Static" ErrorMessage="Required" /><br />

  <asp:Button id="SearchButton" Text="Search" 
              OnClick="Search_OnClick" runat="server" />

</form>

</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Security" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

Public Sub Search_OnClick(sender As Object, args As EventArgs)

  Dim username As String = Membership.GetUserNameByEmail(EmailTextBox.Text)

  If username Is Nothing Then
    Msg.Text = "Email address " & Server.HtmlEncode(EmailTextBox.Text) & " is not found. Please reenter."
  Else
    Msg.Text = "The user name for " & Server.HtmlEncode(EmailTextBox.Text) & _
               " is " & Server.HtmlEncode(username) & "."
  End If

End Sub

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: Retrieve Username By Email</title>
</head>
<body>

<form id="form1" runat="server">
  <h3>Forgot your Username? Search for it by email address.</h3>

  <asp:Label id="Msg" runat="server" ForeColor="maroon" /><br />

  Email address: <asp:Textbox id="EmailTextBox" Columns="30" runat="server" />
                  <asp:RequiredFieldValidator id="EmailRequiredValidator" runat="server"
                                        ControlToValidate="EmailTextBox" ForeColor="red"
                                        Display="Static" ErrorMessage="Required" /><br />

  <asp:Button id="SearchButton" Text="Search" 
              OnClick="Search_OnClick" runat="server" />

</form>

</body>
</html>

설명

이 메서드는 Membership ASP.NET 애플리케이션의 구성 파일 (Web.config)에 지정 된 SQL Server 데이터베이스에서 연관된 된 사용자 이름을 검색 하는 메일 주소를 사용 하 여 클래스입니다.

멤버 자격 데이터베이스에 있는 두 명 이상의 사용자가 동일한 전자 메일 주소를 가지고 있으면 첫 번째 사용자 이름이 반환됩니다. 설정할 수 있습니다 합니다 requiresUniqueEmail 특성을 true 각 전자 메일 확인을 애플리케이션 구성 파일에서 데이터베이스의 주소는 고유 합니다.

email 매개 변수 값에서 선행 및 후행 공백이 트리밍됩니다.

적용 대상

추가 정보