Поделиться через


Membership.GetUser Метод

Определение

Получает информацию из источника данных для пользователя членства.

Перегрузки

GetUser(String, Boolean)

Возвращает из источника данных информацию для указанного пользователя членства. Обновляет отметку о дате и времени последней операции пользователя, если это указано.

GetUser(Object, Boolean)

Возвращает информацию из источника данных для пользователя членства, связанного с определенным уникальным идентификатором. Обновляет отметку о дате и времени последней операции пользователя, если это указано.

GetUser(String)

Возвращает из источника данных информацию для указанного пользователя членства.

GetUser(Boolean)

Возвращает информацию из источника данных для текущего вошедшего пользователя членства. Обновляет отметку о времени и дате последней активности для текущего вошедшего пользователя, если это указано.

GetUser()

Возвращает информацию из источника данных и обновляет отметку о времени и дате последней операции для текущего пользователя членства, вошедшего в систему.

GetUser(Object)

Возвращает информацию из источника данных для пользователя членства, связанного с определенным уникальным идентификатором.

GetUser(String, Boolean)

Возвращает из источника данных информацию для указанного пользователя членства. Обновляет отметку о дате и времени последней операции пользователя, если это указано.

public:
 static System::Web::Security::MembershipUser ^ GetUser(System::String ^ username, bool userIsOnline);
public static System.Web.Security.MembershipUser GetUser (string username, bool userIsOnline);
static member GetUser : string * bool -> System.Web.Security.MembershipUser
Public Shared Function GetUser (username As String, userIsOnline As Boolean) As MembershipUser

Параметры

username
String

Имя извлекаемого пользователя.

userIsOnline
Boolean

Если true, обновляет отметку о дате и времени последней операции для указанного пользователя.

Возвращаемое значение

Объект MembershipUser, представляющий указанного пользователя. Если параметр username не соответствует существующему пользователю, этот метод возвращает null.

Исключения

username содержит запятую (,).

username имеет значение null.

Примеры

В следующем примере кода извлекается пароль для указанного имени пользователя и отправляется на адрес электронной почты указанного пользователя. Вызов GetUser указывает, что метка даты и времени последнего действия для пользователя не обновляется.

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>
<%@ Import Namespace="System.Net.Mail" %>
<!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 Page_Load(object sender, EventArgs args)
{
  if (!Membership.EnablePasswordRetrieval)
  {
    FormsAuthentication.RedirectToLoginPage();
  }

  Msg.Text = "";

  if (!IsPostBack)
  {
    Msg.Text = "Please enter a user name.";
  }
  else
  {
    VerifyUsername();
  }
}


public void VerifyUsername()
{
    MembershipUser user = Membership.GetUser(UsernameTextBox.Text, false);

    if (user == null)
    {
      Msg.Text = "The user name " + Server.HtmlEncode(UsernameTextBox.Text) + " was not found. Please check the value and re-enter.";

      QuestionLabel.Text = "";
      QuestionLabel.Enabled = false;
      AnswerTextBox.Enabled = false;
      EmailPasswordButton.Enabled = false;
    }
    else
    {
      QuestionLabel.Text = user.PasswordQuestion;
      QuestionLabel.Enabled = true;
      AnswerTextBox.Enabled = true;
      EmailPasswordButton.Enabled = true;
    }
}


public void EmailPassword_OnClick(object sender, EventArgs args)
{
  // Note: Returning a password in clear text using email is not recommended for
  // sites that require a high level of security.

  try
  {
    string password = Membership.Provider.GetPassword(UsernameTextBox.Text, AnswerTextBox.Text);
    MembershipUser u = Membership.GetUser(UsernameTextBox.Text);
    EmailPassword(u.Email, password);
    Msg.Text = "Your password was sent via email.";
  }
  catch (MembershipPasswordException e)
  {
    Msg.Text = "The password answer is incorrect. Please check the value and try again.";
  }
  catch (System.Configuration.Provider.ProviderException e)
  {
    Msg.Text = "An error occurred retrieving your password. Please check your values " +
               "and try again.";
  }
}


private void EmailPassword(string email, string password)
{
  try
  {
    MailMessage Message = new MailMessage("administrator", email);
    Message.Subject = "Your Password";
    Message.Body = "Your password is: " + Server.HtmlEncode(password);

    SmtpClient SmtpMail = new SmtpClient("SMTPSERVER");
    SmtpMail.Send(Message);
  }
  catch 
  {
    Msg.Text = "An exception occurred while sending your password. Please try again.";
  }
}

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

<form id="form1" runat="server">
  <h3>Retrieve Password</h3>

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

  Username: <asp:Textbox id="UsernameTextBox" Columns="30" runat="server" AutoPostBack="true" />
            <asp:RequiredFieldValidator id="UsernameRequiredValidator" runat="server"
                                        ControlToValidate="UsernameTextBox" ForeColor="red"
                                        Display="Static" ErrorMessage="Required" /><br />

  Password Question: <b><asp:Label id="QuestionLabel" runat="server" /></b><br />

  Answer: <asp:TextBox id="AnswerTextBox" Columns="60" runat="server" Enabled="false" />
          <asp:RequiredFieldValidator id="AnswerRequiredValidator" runat="server"
                                      ControlToValidate="AnswerTextBox" ForeColor="red"
                                      Display="Static" ErrorMessage="Required" Enabled="false" /><br />

  <asp:Button id="EmailPasswordButton" Text="Email My Password" 
              OnClick="EmailPassword_OnClick" runat="server" Enabled="false" />

</form>

</body>
</html>

<%@ Page Language="VB" %>

<%@ Import Namespace="System.Web.Security" %>
<%@ Import Namespace="System.Net.Mail" %>

<!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 Page_Load(ByVal sender As Object, ByVal args As EventArgs)

    If Not Membership.EnablePasswordRetrieval Then
      FormsAuthentication.RedirectToLoginPage()
    End If

    Msg.Text = ""

    If Not IsPostBack Then
      Msg.Text = "Please enter a user name."
    Else
      VerifyUsername()
    End If

  End Sub


  Private Sub VerifyUsername()

    Dim user As MembershipUser = Membership.GetUser(UsernameTextBox.Text, False)

    If user Is Nothing Then
      Msg.Text = "The user name " & Server.HtmlEncode(UsernameTextBox.Text) & " was not found. Please check the value and re-enter."

      QuestionLabel.Text = ""
      QuestionLabel.Enabled = False
      AnswerTextBox.Enabled = False
      EmailPasswordButton.Enabled = False
    Else
      QuestionLabel.Text = user.PasswordQuestion
      QuestionLabel.Enabled = True
      AnswerTextBox.Enabled = True
      EmailPasswordButton.Enabled = True
    End If

  End Sub


  Public Sub EmailPassword_OnClick(ByVal sender As Object, ByVal args As EventArgs)

    ' Note: Returning a password in clear text using email is not recommended for
    ' sites that require a high level of security.

    Try
      Dim password As String = Membership.Provider.GetPassword(UsernameTextBox.Text, AnswerTextBox.Text)
      Dim u As MembershipUser = Membership.GetUser(UsernameTextBox.Text)
      EmailPassword(u.Email, password)
      Msg.Text = "Your password was sent via email."
    Catch e As MembershipPasswordException
      Msg.Text = "The password answer is incorrect. Please check the value and try again."
    Catch e As System.Configuration.Provider.ProviderException
      Msg.Text = "An error occurred retrieving your password. Please check your values " & _
                 "and try again."
    End Try

  End Sub


  Private Sub EmailPassword(ByVal email As String, ByVal password As String)

    Try
      Dim Message As MailMessage = New MailMessage("administrator", email)
      Message.Subject = "Your Password"
      Message.Body = "Your password is: " & Server.HtmlEncode(password)
      
      Dim SmtpMail As SmtpClient = New SmtpClient("SMTPSERVER")
      SmtpMail.Send(Message)
    Catch
      Msg.Text = "An exception occurred while sending your password. Please try again."
    End Try

  End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>Sample: Retrieve Password</title>
</head>
<body>
  <form id="form1" runat="server">
    <h3>
      Retrieve Password</h3>
    <asp:Label ID="Msg" runat="server" ForeColor="maroon" /><br />
    Username:
    <asp:TextBox ID="UsernameTextBox" Columns="30" runat="server" AutoPostBack="True" />
    <asp:RequiredFieldValidator ID="UsernameRequiredValidator" runat="server" ControlToValidate="UsernameTextBox"
      ForeColor="red" Display="Static" ErrorMessage="Required" /><br />
    Password Question: <b>
      <asp:Label ID="QuestionLabel" runat="server" /></b><br />
    Answer:
    <asp:TextBox ID="AnswerTextBox" Columns="60" runat="server" Enabled="False" />
    <asp:RequiredFieldValidator ID="AnswerRequiredValidator" runat="server" ControlToValidate="AnswerTextBox"
      ForeColor="red" Display="Static" ErrorMessage="Required" Enabled="False" /><br />
    <asp:Button ID="EmailPasswordButton" Text="Email My Password" OnClick="EmailPassword_OnClick"
      runat="server" Enabled="False" />
  </form>
</body>
</html>

Комментарии

Метод GetUser извлекает сведения о пользователе из источника данных и создает объект, MembershipUser заполненный возвращенными данными.

При использовании одной из GetUser перегрузок, которая не принимает username параметр, GetUser возвращает сведения для текущего пользователя, вошедшего в систему. Текущий пользователь, вошедший в систему, определяется Name пользователем в текущем HttpContext.

Можно также указать, следует GetUser ли обновлять метку даты и времени последнего действия для извлекаемого пользователя с помощью userIsOnline параметра . GetUser Из перегрузок, которые не принимают userIsOnline параметр, Membership.GetUser неявно обновляет метку даты и времени последнего действия для пользователя. Membership.GetUser и GetUser нет.

См. также раздел

Применяется к

GetUser(Object, Boolean)

Возвращает информацию из источника данных для пользователя членства, связанного с определенным уникальным идентификатором. Обновляет отметку о дате и времени последней операции пользователя, если это указано.

public:
 static System::Web::Security::MembershipUser ^ GetUser(System::Object ^ providerUserKey, bool userIsOnline);
public static System.Web.Security.MembershipUser GetUser (object providerUserKey, bool userIsOnline);
static member GetUser : obj * bool -> System.Web.Security.MembershipUser
Public Shared Function GetUser (providerUserKey As Object, userIsOnline As Boolean) As MembershipUser

Параметры

providerUserKey
Object

Уникальный идентификатор пользователя из источника данных членства для пользователя.

userIsOnline
Boolean

Если true, обновляет отметку о дате и времени последней операции для указанного пользователя.

Возвращаемое значение

Объект MembershipUser, представляющий пользователя, связанного с уникальным идентификатором.

Исключения

providerUserKey имеет значение null.

Комментарии

Метод GetUser извлекает сведения о пользователе из источника данных и создает объект, MembershipUser заполненный возвращенными данными. Пользователь идентифицируется с помощью уникального идентификатора из источника данных, указанного в параметре providerUserKey .

См. также раздел

Применяется к

GetUser(String)

Возвращает из источника данных информацию для указанного пользователя членства.

public:
 static System::Web::Security::MembershipUser ^ GetUser(System::String ^ username);
public static System.Web.Security.MembershipUser GetUser (string username);
static member GetUser : string -> System.Web.Security.MembershipUser
Public Shared Function GetUser (username As String) As MembershipUser

Параметры

username
String

Имя извлекаемого пользователя.

Возвращаемое значение

Объект MembershipUser, представляющий указанного пользователя. Если параметр username не соответствует существующему пользователю, этот метод возвращает null.

Исключения

username содержит запятую (,).

username имеет значение null.

Примеры

В следующем примере кода метод используется GetUser для возврата MembershipUser объекта для текущего пользователя, выполнившего вход, и обновляет адрес электронной почты пользователя.

<%@ 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">

MembershipUser u;

public void Page_Load(object sender, EventArgs args)
{
  u = Membership.GetUser(User.Identity.Name);

  if (!IsPostBack)
  {
    EmailTextBox.Text = u.Email; 
  }
}

public void UpdateEmailButton_OnClick(object sender, EventArgs args)
{
  try
  {
    u.Email = EmailTextBox.Text;

    Membership.UpdateUser(u);
  
    Msg.Text = "User email updated.";
  }
  catch (System.Configuration.Provider.ProviderException e)
  {
    Msg.Text = e.Message;
  }
}

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: Update User E-Mail</title>
</head>
<body>

<form id="form1" runat="server">
  <h3>Update E-Mail Address for <%=User.Identity.Name%></h3>

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

  <table cellpadding="3" border="0">
    <tr>
      <td>Email Address:</td>
      <td><asp:TextBox id="EmailTextBox" MaxLength="128" Columns="30" runat="server" /></td>
      <td><asp:RequiredFieldValidator id="EmailRequiredValidator" runat="server"
                                    ControlToValidate="EmailTextBox" ForeColor="red"
                                    Display="Static" ErrorMessage="Required" /></td>
    </tr>
    <tr>
      <td></td>
      <td><asp:Button id="UpdateEmailButton" 
                      Text="Update Email" 
                      OnClick="UpdateEmailButton_OnClick" 
                      runat="server" /></td>
    </tr>
  </table>
</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">

Dim u As MembershipUser

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

  u = Membership.GetUser(User.Identity.Name)

  If Not IsPostBack Then EmailTextBox.Text = u.Email

End Sub

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

  Try
    u.Email = EmailTextBox.Text

    Membership.UpdateUser(u)
  
    Msg.Text = "User email updated."
  Catch e As System.Configuration.Provider.ProviderException
    Msg.Text = e.Message
  End Try

End Sub

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: Update User E-Mail</title>
</head>
<body>

<form id="form1" runat="server">
  <h3>Update E-Mail Address for <%=User.Identity.Name%></h3>

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

  <table cellpadding="3" border="0">
    <tr>
      <td>Email Address:</td>
      <td><asp:TextBox id="EmailTextBox" MaxLength="128" Columns="30" runat="server" /></td>
      <td><asp:RequiredFieldValidator id="EmailRequiredValidator" runat="server"
                                    ControlToValidate="EmailTextBox" ForeColor="red"
                                    Display="Static" ErrorMessage="Required" /></td>
    </tr>
    <tr>
      <td></td>
      <td><asp:Button id="UpdateEmailButton" 
                      Text="Update Email" 
                      OnClick="UpdateEmailButton_OnClick" 
                      runat="server" /></td>
    </tr>
  </table>
</form>

</body>
</html>

Комментарии

Метод GetUser извлекает сведения о пользователе из источника данных и создает объект, MembershipUser заполненный возвращенными данными. При использовании одной из GetUser перегрузок, которая не принимает username параметр, GetUser возвращает сведения для текущего пользователя, вошедшего в систему. Текущий пользователь, вошедший в систему, определяется Name пользователем в текущем HttpContext.

Можно также указать, следует GetUser ли обновлять метку даты и времени последнего действия для извлекаемого пользователя с помощью userIsOnline параметра . GetUser Из перегрузок, которые не принимают userIsOnline параметр, Membership.GetUser неявно обновляет метку даты и времени последнего действия для пользователя. Membership.GetUser и GetUser нет.

См. также раздел

Применяется к

GetUser(Boolean)

Возвращает информацию из источника данных для текущего вошедшего пользователя членства. Обновляет отметку о времени и дате последней активности для текущего вошедшего пользователя, если это указано.

public:
 static System::Web::Security::MembershipUser ^ GetUser(bool userIsOnline);
public static System.Web.Security.MembershipUser GetUser (bool userIsOnline);
static member GetUser : bool -> System.Web.Security.MembershipUser
Public Shared Function GetUser (userIsOnline As Boolean) As MembershipUser

Параметры

userIsOnline
Boolean

Если true, обновляет отметку о дате и времени последней операции для указанного пользователя.

Возвращаемое значение

Объект MembershipUser, представляющий текущего пользователя, вошедшего в систему.

Исключения

В настоящее время в системе не работает ни один авторизованный пользователь.

Примеры

В следующем примере кода отображается имя текущего пользователя, вошедшего в систему, на странице ASP.NET без обновления метки даты и времени последнего действия для пользователя.

<%@ 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">

MembershipUser currentUser;

public void Page_Load()
{
  currentUser = Membership.GetUser(false);
}

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Home Page</title>
</head>
<body>

<form id="form1" runat="server">
Welcome <b><%=currentUser.UserName%></b>. 
</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">

Dim currentUser As MembershipUser

Public Sub Page_Load()
  currentUser = Membership.GetUser(False)
End Sub

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Home Page</title>
</head>
<body>

<form id="form1" runat="server">
Welcome <b><%=currentUser.UserName%></b>.
</form>

</body>
</html>

Комментарии

Метод GetUser извлекает сведения о пользователе из источника данных и создает объект, MembershipUser заполненный возвращенными данными. При использовании одной из GetUser перегрузок, которая не принимает username параметр, GetUser возвращает сведения для текущего пользователя, вошедшего в систему. Текущий пользователь, вошедший в систему, определяется Name пользователем в текущем HttpContext.

Можно также указать, следует GetUser ли обновлять метку даты и времени последнего действия для извлекаемого пользователя с помощью userIsOnline параметра . GetUser Из перегрузок, которые не принимают userIsOnline параметр, GetUser() неявно обновляет метку даты и времени последнего действия для пользователя. GetUser(System.String) и GetUser(System.Object) нет.

См. также раздел

Применяется к

GetUser()

Возвращает информацию из источника данных и обновляет отметку о времени и дате последней операции для текущего пользователя членства, вошедшего в систему.

public:
 static System::Web::Security::MembershipUser ^ GetUser();
public static System.Web.Security.MembershipUser GetUser ();
static member GetUser : unit -> System.Web.Security.MembershipUser
Public Shared Function GetUser () As MembershipUser

Возвращаемое значение

Объект MembershipUser, представляющий текущего пользователя, вошедшего в систему.

Исключения

В настоящее время в системе не работает ни один авторизованный пользователь.

Примеры

В следующем примере кода обновляется метка даты и времени последнего действия для текущего пользователя, вошедшего в систему, и отображается имя пользователя на странице ASP.NET.

<%@ 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">

MembershipUser currentUser;

public void Page_Load()
{
  currentUser = Membership.GetUser();
}

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Home Page</title>
</head>
<body>

<form id="form1" runat="server">
Welcome <b><%=currentUser.UserName%></b>. 
</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">

Dim currentUser As MembershipUser

Public Sub Page_Load()
  currentUser = Membership.GetUser()
End Sub

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Home Page</title>
</head>
<body>

<form id="form1" runat="server">
Welcome <b><%=currentUser.UserName%></b>.
</form>

</body>
</html>

Комментарии

GetUser() извлекает сведения о пользователе из источника данных и создает объект, MembershipUser заполненный возвращенными данными. При использовании одной из GetUser перегрузок, которая не принимает username параметр, GetUser возвращает сведения для текущего пользователя, вошедшего в систему. Текущий пользователь, вошедший в систему, определяется Name пользователем в текущем HttpContext.

Можно также указать, следует GetUser ли обновлять метку даты и времени последнего действия для извлекаемого пользователя с помощью userIsOnline параметра . GetUser Из перегрузок, которые не принимают userIsOnline параметр, GetUser() неявно обновляет метку даты и времени последнего действия для пользователя. GetUser(System.String) и GetUser(System.Object) нет.

См. также раздел

Применяется к

GetUser(Object)

Возвращает информацию из источника данных для пользователя членства, связанного с определенным уникальным идентификатором.

public:
 static System::Web::Security::MembershipUser ^ GetUser(System::Object ^ providerUserKey);
public static System.Web.Security.MembershipUser GetUser (object providerUserKey);
static member GetUser : obj -> System.Web.Security.MembershipUser
Public Shared Function GetUser (providerUserKey As Object) As MembershipUser

Параметры

providerUserKey
Object

Уникальный идентификатор пользователя из источника данных членства для пользователя.

Возвращаемое значение

Объект MembershipUser, представляющий пользователя, связанного с уникальным идентификатором.

Исключения

providerUserKey имеет значение null.

Комментарии

Метод GetUser извлекает сведения о пользователе из источника данных и создает объект, MembershipUser заполненный возвращенными данными. Пользователь идентифицируется с помощью уникального идентификатора из источника данных, указанного providerUserKey с помощью параметра .

Можно также указать, следует GetUser ли обновлять метку даты и времени последнего действия для извлекаемого пользователя с помощью userIsOnline параметра . GetUser Из перегрузок, которые не принимают userIsOnline параметр, GetUser() неявно обновляет метку даты и времени последнего действия для пользователя. GetUser(System.String) и GetUser(System.Object) не

См. также раздел

Применяется к