共用方式為


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 包含逗號 (,)。

usernamenull

範例

下列程式代碼範例會擷取指定使用者名稱的密碼,並將它傳送至指定使用者的電子郵件位址。 的呼叫 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 填入傳回數據的物件。

如果您使用其中一個不採用 username 參數的多GetUser載,GetUser則傳回目前登入成員資格用戶的資訊。 目前的登入成員資格使用者是由 Name 目前 HttpContext中用戶的識別。

您也可以指定是否要 GetUser 針對使用 userIsOnline 參數擷取的使用者更新上次活動日期/時間戳。 對於不採用userIsOnline參數的多GetUser載,Membership.GetUser隱含地更新用戶的最後一個活動日期/時間戳。 Membership.GetUserGetUser 不行。

另請參閱

適用於

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 物件,表示與指定唯一識別項相關聯的使用者。

例外狀況

providerUserKeynull

備註

方法 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 包含逗號 (,)。

usernamenull

範例

下列程式代碼範例會 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 填入傳回數據的物件。 如果您使用其中一個不採用 username 參數的多GetUser載,GetUser則傳回目前登入成員資格用戶的資訊。 目前的登入成員資格使用者是由 Name 目前 HttpContext中用戶的識別。

您也可以指定是否要 GetUser 針對使用 userIsOnline 參數擷取的使用者更新上次活動日期/時間戳。 對於不採用userIsOnline參數的多GetUser載,Membership.GetUser隱含地更新用戶的最後一個活動日期/時間戳。 Membership.GetUserGetUser 不行。

另請參閱

適用於

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 填入傳回數據的物件。 如果您使用其中一個不採用 username 參數的多GetUser載,GetUser則傳回目前登入成員資格用戶的資訊。 目前的登入成員資格使用者是由 Name 目前 HttpContext中用戶的識別。

您也可以指定是否要 GetUser 針對使用 userIsOnline 參數擷取的使用者更新上次活動日期/時間戳。 對於不採用userIsOnline參數的多GetUser載,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 填入傳回數據的物件。 如果您使用其中一個不採用 username 參數的多GetUser載,GetUser則傳回目前登入成員資格用戶的資訊。 目前的登入成員資格使用者是由 Name 目前 HttpContext中用戶的識別。

您也可以指定是否要 GetUser 針對使用 userIsOnline 參數擷取的使用者更新上次活動日期/時間戳。 對於不採用userIsOnline參數的多GetUser載,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 物件,表示與指定唯一識別項相關聯的使用者。

例外狀況

providerUserKeynull

備註

方法 GetUser 會從數據源擷取使用者資訊,並建立 MembershipUser 填入傳回數據的物件。 使用者是使用 參數 providerUserKey 所指定數據源的唯一標識碼來識別。

您也可以指定是否要 GetUser 針對使用 userIsOnline 參數擷取的使用者更新上次活動日期/時間戳。 對於不採用userIsOnline參數的多GetUser載,GetUser()隱含地更新用戶的最後一個活動日期/時間戳。 GetUser(System.String)GetUser(System.Object)

另請參閱

適用於