Membership.GetUser 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
從資料來源取得成員資格使用者的資訊。
多載
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 填入傳回數據的物件。
如果您使用其中一個不採用 username
參數的多GetUser載,GetUser則傳回目前登入成員資格用戶的資訊。 目前的登入成員資格使用者是由 Name 目前 HttpContext中用戶的識別。
您也可以指定是否要 GetUser 針對使用 userIsOnline
參數擷取的使用者更新上次活動日期/時間戳。 對於不採用userIsOnline
參數的多GetUser載,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 填入傳回數據的物件。 如果您使用其中一個不採用 username
參數的多GetUser載,GetUser則傳回目前登入成員資格用戶的資訊。 目前的登入成員資格使用者是由 Name 目前 HttpContext中用戶的識別。
您也可以指定是否要 GetUser 針對使用 userIsOnline
參數擷取的使用者更新上次活動日期/時間戳。 對於不採用userIsOnline
參數的多GetUser載,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 填入傳回數據的物件。 如果您使用其中一個不採用 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 物件,表示與指定唯一識別項相關聯的使用者。
例外狀況
providerUserKey
為 null
。
備註
方法 GetUser 會從數據源擷取使用者資訊,並建立 MembershipUser 填入傳回數據的物件。 使用者是使用 參數 providerUserKey
所指定數據源的唯一標識碼來識別。
您也可以指定是否要 GetUser 針對使用 userIsOnline
參數擷取的使用者更新上次活動日期/時間戳。 對於不採用userIsOnline
參數的多GetUser載,GetUser()
隱含地更新用戶的最後一個活動日期/時間戳。
GetUser(System.String)
和 GetUser(System.Object)
不