Udostępnij za pośrednictwem


SqlMembershipProvider.UpdateUser(MembershipUser) Metoda

Definicja

Aktualizuje informacje o użytkowniku w bazie danych członkostwa programu 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)

Parametry

user
MembershipUser

MembershipUser Obiekt reprezentujący użytkownika do zaktualizowania i zaktualizowane informacje dla użytkownika.

Wyjątki

Parametr user ma wartość null.

— lub —

Właściwość UserName właściwości user to null.

— lub —

Właściwość Emailuser właściwości jest null ustawiona RequiresUniqueEmail na truewartość .

Właściwość UserName jest user pustym ciągiem (""), zawiera przecinek lub jest dłuższa niż 256 znaków.

— lub —

Właściwość Email obiektu jest dłuższa user niż 256 znaków.

— lub —

Właściwość Email elementu user jest pustym ciągiem i RequiresUniqueEmail jest ustawiona na truewartość .

Nie UserName można odnaleźć właściwości obiektu user w bazie danych.

— lub —

Właściwość Emailuser była równa istniejącemu adresowi e-mail w bazie danych i RequiresUniqueEmail ma wartość true.

— lub —

Aktualizacja użytkownika nie powiodła się.

Przykłady

Poniższy przykładowy kod aktualizuje adres e-mail użytkownika.

Uwaga / Notatka

W tym przykładzie użyto Membership klasy do wywołania określonego SqlMembershipProvider elementu jako defaultProvider w pliku Web.config. Jeśli musisz uzyskać dostęp do domyślnego dostawcy jako typu SqlMembershipProvider, możesz rzutować Provider właściwość Membership klasy. Aby uzyskać dostęp do innych skonfigurowanych dostawców jako określonego typu dostawcy, możesz uzyskać do nich dostęp według ich skonfigurowanej nazwy z właściwością ProvidersMembership klasy i rzutować je jako określony typ dostawcy.

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

Uwagi

Ta metoda jest wywoływana przez klasę Membership w celu zaktualizowania informacji o użytkowniku w bazie danych programu SQL Server określonej w pliku konfiguracji aplikacji ASP.NET (Web.config). Wartości Emailwłaściwości , , CommentIsApproved, LastLoginDatei LastActivityDate są aktualizowane dla określonego użytkownika członkostwa.

Maksymalna długość UserName właściwości to 256 znaków. Maksymalna długość Email właściwości to 256 znaków.

Nie można zaktualizować hasła użytkownika członkostwa przy użyciu UpdateUser metody . Aby zaktualizować hasło użytkownika członkostwa, użyj ChangePassword metody MembershipUser klasy .

Dotyczy

Zobacz też