Sdílet prostřednictvím


SqlMembershipProvider.UpdateUser(MembershipUser) Metoda

Definice

Aktualizuje informace o uživateli v databázi členství SQL Serveru.

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

Objekt MembershipUser , který představuje uživatele, který se má aktualizovat, a aktualizované informace o uživateli.

Výjimky

user je null.

-nebo-

Vlastnost UserNameuser je null.

-nebo-

Vlastnost Emailuser je null a RequiresUniqueEmail je nastavená na true.

Vlastnost UserNameuser je prázdný řetězec (""), obsahuje čárku nebo je delší než 256 znaků.

-nebo-

Vlastnost Emailuser je delší než 256 znaků.

-nebo-

Vlastnost Emailuser je prázdný řetězec a RequiresUniqueEmail je nastavená na true.

Vlastnost UserName nebyla user v databázi nalezena.

-nebo-

Vlastnost Email byla user rovna existující e-mailové adrese v databázi a RequiresUniqueEmail je nastavená na hodnotu true.

-nebo-

Aktualizace uživatele se nezdařila.

Příklady

Následující příklad kódu aktualizuje e-mailovou adresu uživatele.

Poznámka

Tento příklad používá Membership třídu k volání SqlMembershipProvider zadané jako defaultProvider v souboru Web.config. Pokud potřebujete získat přístup k výchozímu poskytovateli jako typ SqlMembershipProvider, můžete přetypovat Provider vlastnost Membership třídy. Chcete-li získat přístup k jiným nakonfigurovaným poskytovatelům jako konkrétnímu typu zprostředkovatele, můžete k nim přistupovat pomocí jejich nakonfigurovaného názvu s Providers vlastností Membership třídy a přetypovat je jako konkrétní typ zprostředkovatele.

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

Poznámky

Tato metoda je volána Membership třídou k aktualizaci informací o uživateli v databázi SQL Serveru zadané v konfiguračním souboru aplikace ASP.NET (Web.config). Hodnoty Emailvlastností , Comment, IsApproved, LastLoginDatea LastActivityDate se aktualizují pro zadaného uživatele členství.

Maximální délka UserName vlastnosti je 256 znaků. Maximální délka Email vlastnosti je 256 znaků.

Heslo pro uživatele členství nelze aktualizovat pomocí UpdateUser metody . Chcete-li aktualizovat heslo pro uživatele členství, použijte ChangePassword metodu MembershipUser třídy.

Platí pro

Viz také