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 k aktualizaci, a aktualizované informace pro uživatele.

Výjimky

user je null.

nebo

user Vlastnost UserName je null.

nebo

Vlastnost Emailuser is null a RequiresUniqueEmail je nastavena 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 UserNameuser nebyla v databázi nalezena.

nebo

Vlastnost Emailuser byla rovna existující e-mailové adrese v databázi a RequiresUniqueEmail je nastavena 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 přistupovat k výchozímu poskytovateli jako typ SqlMembershipProvider, můžete přetypovat Provider vlastnost Membership třídy. Pokud chcete získat přístup k jiným nakonfigurovaným poskytovatelům jako konkrétnímu typu poskytovatele, můžete k nim přistupovat podle 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 SYSTÉMU SQL Server zadané v konfiguračním souboru aplikace ASP.NET (Web.config). Hodnoty Emailvlastností , , Comment, IsApprovedLastLoginDatea LastActivityDate vlastnosti jsou aktualizovány 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 této metody. Chcete-li aktualizovat heslo pro uživatele členství, použijte ChangePassword metodu MembershipUser třídy.

Platí pro

Viz také