共用方式為


SqlMembershipProvider.UpdateUser(MembershipUser) 方法

定義

更新 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 物件,表示要更新的使用者和使用者的更新資訊。

例外狀況

usernull

-或-

userUserName 屬性為 null

-或-

userEmail 屬性為 null,而且 RequiresUniqueEmail 設定為 true

userUserName 屬性是空字串 ("")、包含逗號,或長於 256 個字元。

-或-

userEmail 屬性長於 256 個字元。

-或-

userEmail 屬性為空字串,而且 RequiresUniqueEmail 設定為 true

資料庫中找不到 userUserName 屬性。

-或-

userEmail 屬性等於資料庫中現有的電子郵件地址,而且 RequiresUniqueEmail 設定為 true。

-或-

使用者更新失敗。

範例

下列程式碼範例會更新使用者的電子郵件地址。

注意

這個範例會 Membership 使用 類別呼叫 SqlMembershipProvider 指定做為 defaultProvider Web.config 檔案中的 。 如果您需要存取預設提供者做為 類型 SqlMembershipProvider ,您可以轉換 Provider 類別的 Membership 屬性。 若要以特定提供者類型存取其他已設定的提供者,您可以使用 類別 ProvidersMembership 屬性來存取這些提供者,並將其轉換成特定提供者類型。

<%@ 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 成員資格使用者會更新 、 CommentIsApprovedLastLoginDateLastActivityDate 屬性值。

屬性的最大 UserName 長度為 256 個字元。 屬性的最大 Email 長度為 256 個字元。

無法使用 方法來更新 UpdateUser 成員資格使用者的密碼。 若要更新成員資格使用者的密碼,請使用 ChangePassword 類別的 MembershipUser 方法。

適用於

另請參閱