SqlMembershipProvider.UpdateUser(MembershipUser) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
更新 SQL Server 成員資格資料庫中使用者的資訊。
public:
override void UpdateUser(System::Web::Security::MembershipUser ^ user);
public override void UpdateUser (System.Web.Security.MembershipUser user);
override this.UpdateUser : System.Web.Security.MembershipUser -> unit
Public Overrides Sub UpdateUser (user As MembershipUser)
參數
- user
- MembershipUser
MembershipUser 物件,表示要更新的使用者和使用者的更新資訊。
例外狀況
user
為 null
。
-或-
user
的 UserName 屬性為 null
。
-或-
user
的 Email 屬性為 null
,而且 RequiresUniqueEmail 設定為 true
。
user
的 UserName 屬性是空字串 ("")、包含逗號,或長於 256 個字元。
-或-
user
的 Email 屬性長於 256 個字元。
-或-
user
的 Email 屬性為空字串,而且 RequiresUniqueEmail 設定為 true
。
資料庫中找不到 user
的 UserName 屬性。
-或-
user
的 Email 屬性等於資料庫中現有的電子郵件地址,而且 RequiresUniqueEmail 設定為 true。
-或-
使用者更新失敗。
範例
下列程式代碼範例會更新使用者的電子郵件位址。
注意
這個範例會使用 類別 Membership 呼叫 SqlMembershipProvider 指定的 ,做為 defaultProvider
Web.config 檔案中的 。 如果您需要存取預設提供者做為 類型 SqlMembershipProvider,您可以轉換 Provider 類別的 Membership 屬性。 若要以特定提供者類型的形式存取其他已設定的提供者,您可以使用 類別 Providers 的 Membership 屬性來存取這些提供者,並將其轉換成特定提供者類型。
<%@ 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>
備註
類別會呼叫 Membership 這個方法,以更新 ASP.NET 應用程式組態檔 (Web.config) 中所指定 SQL Server 資料庫中使用者的使用者資訊。 指定的Email成員資格使用者會更新 、CommentIsApproved、、 LastLoginDate和 LastActivityDate 屬性值。
屬性的最大 UserName 長度為 256 個字元。 屬性的最大 Email 長度為 256 個字元。
無法使用 方法來更新 UpdateUser 成員資格用戶的密碼。 若要更新成員資格使用者的密碼,請使用 ChangePassword 類別的 MembershipUser 方法。