SqlMembershipProvider.GetUser Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft die Informationen für einen Mitgliedschaftsbenutzer aus der Datenquelle ab.
Überlädt
GetUser(String, Boolean) |
Gibt für einen Benutzer Informationen aus der Mitgliedschaftsdatenbank von SQL Server zurück und stellt eine Option zum Aktualisieren des Datums-/Zeitstempels der letzten Aktivität des Benutzers bereit. |
GetUser(Object, Boolean) |
Ruft die Informationen aus der Datenquelle für den Mitgliedschaftsbenutzer ab, der dem angegebenen eindeutigen Bezeichner zugeordnet ist, und aktualisiert gegebenenfalls den Datums-/Zeitstempel der letzten Aktivität des Benutzers. |
GetUser(String, Boolean)
Gibt für einen Benutzer Informationen aus der Mitgliedschaftsdatenbank von SQL Server zurück und stellt eine Option zum Aktualisieren des Datums-/Zeitstempels der letzten Aktivität des Benutzers bereit.
public:
override System::Web::Security::MembershipUser ^ GetUser(System::String ^ username, bool userIsOnline);
public override System.Web.Security.MembershipUser GetUser (string username, bool userIsOnline);
override this.GetUser : string * bool -> System.Web.Security.MembershipUser
Public Overrides Function GetUser (username As String, userIsOnline As Boolean) As MembershipUser
Parameter
- username
- String
Der Name des Benutzers, für den Informationen abgerufen werden sollen.
- userIsOnline
- Boolean
true
, um den Datums-/Zeitstempel der letzten Aktivität des Benutzers zu aktualisieren; false
, um Benutzerinformationen ohne Aktualisierung des Datums-/Zeitstempels für die letzte Aktivität des Benutzers zurückzugeben.
Gibt zurück
Ein MembershipUser-Objekt, das den angegebenen Benutzer darstellt. Wenn für den angegebenen username
-Wert kein Benutzer in der Datenbank gefunden wird, wird null
zurückgegeben.
Ausnahmen
username
ist null
.
Beispiele
Im folgenden Codebeispiel wird mithilfe der GetUser -Methode ermittelt, ob ein Benutzer vorhanden ist, bevor das Kennwort für den Benutzer abgerufen wird.
Hinweis
In diesem Beispiel wird die Membership -Klasse verwendet, um das SqlMembershipProvider angegebene als in defaultProvider
der Web.config-Datei aufzurufen. Wenn Sie auf den Standardanbieter als Typ SqlMembershipProviderzugreifen müssen, können Sie die Provider -Eigenschaft der Membership -Klasse umwandeln. Um auf andere konfigurierte Anbieter als bestimmten Anbietertyp zuzugreifen, können Sie über ihren konfigurierten Namen mit der Providers -Eigenschaft der Membership -Klasse darauf zugreifen und sie als bestimmten Anbietertyp umwandeln.
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>
<%@ Import Namespace="System.Net.Mail" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
public void Page_Load(object sender, EventArgs args)
{
if (!Membership.EnablePasswordRetrieval)
{
FormsAuthentication.RedirectToLoginPage();
}
Msg.Text = "";
if (!IsPostBack)
{
Msg.Text = "Please enter a user name.";
}
else
{
VerifyUsername();
}
}
public void VerifyUsername()
{
MembershipUser user = Membership.GetUser(UsernameTextBox.Text, false);
if (user == null)
{
Msg.Text = "The user name " + Server.HtmlEncode(UsernameTextBox.Text) + " was not found. Please check the value and re-enter.";
QuestionLabel.Text = "";
QuestionLabel.Enabled = false;
AnswerTextBox.Enabled = false;
EmailPasswordButton.Enabled = false;
}
else
{
QuestionLabel.Text = user.PasswordQuestion;
QuestionLabel.Enabled = true;
AnswerTextBox.Enabled = true;
EmailPasswordButton.Enabled = true;
}
}
public void EmailPassword_OnClick(object sender, EventArgs args)
{
// Note: Returning a password in clear text using email is not recommended for
// sites that require a high level of security.
try
{
string password = Membership.Provider.GetPassword(UsernameTextBox.Text, AnswerTextBox.Text);
MembershipUser u = Membership.GetUser(UsernameTextBox.Text);
EmailPassword(u.Email, password);
Msg.Text = "Your password was sent via email.";
}
catch (MembershipPasswordException e)
{
Msg.Text = "The password answer is incorrect. Please check the value and try again.";
}
catch (System.Configuration.Provider.ProviderException e)
{
Msg.Text = "An error occurred retrieving your password. Please check your values " +
"and try again.";
}
}
private void EmailPassword(string email, string password)
{
try
{
MailMessage Message = new MailMessage("administrator", email);
Message.Subject = "Your Password";
Message.Body = "Your password is: " + Server.HtmlEncode(password);
SmtpClient SmtpMail = new SmtpClient("SMTPSERVER");
SmtpMail.Send(Message);
}
catch
{
Msg.Text = "An exception occurred while sending your password. Please try again.";
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: Retrieve Password</title>
</head>
<body>
<form id="form1" runat="server">
<h3>Retrieve Password</h3>
<asp:Label id="Msg" runat="server" ForeColor="maroon" /><br />
Username: <asp:Textbox id="UsernameTextBox" Columns="30" runat="server" AutoPostBack="true" />
<asp:RequiredFieldValidator id="UsernameRequiredValidator" runat="server"
ControlToValidate="UsernameTextBox" ForeColor="red"
Display="Static" ErrorMessage="Required" /><br />
Password Question: <b><asp:Label id="QuestionLabel" runat="server" /></b><br />
Answer: <asp:TextBox id="AnswerTextBox" Columns="60" runat="server" Enabled="false" />
<asp:RequiredFieldValidator id="AnswerRequiredValidator" runat="server"
ControlToValidate="AnswerTextBox" ForeColor="red"
Display="Static" ErrorMessage="Required" Enabled="false" /><br />
<asp:Button id="EmailPasswordButton" Text="Email My Password"
OnClick="EmailPassword_OnClick" runat="server" Enabled="false" />
</form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Security" %>
<%@ Import Namespace="System.Net.Mail" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Public Sub Page_Load(ByVal sender As Object, ByVal args As EventArgs)
If Not Membership.EnablePasswordRetrieval Then
FormsAuthentication.RedirectToLoginPage()
End If
Msg.Text = ""
If Not IsPostBack Then
Msg.Text = "Please enter a user name."
Else
VerifyUsername()
End If
End Sub
Private Sub VerifyUsername()
Dim user As MembershipUser = Membership.GetUser(UsernameTextBox.Text, False)
If user Is Nothing Then
Msg.Text = "The user name " & Server.HtmlEncode(UsernameTextBox.Text) & " was not found. Please check the value and re-enter."
QuestionLabel.Text = ""
QuestionLabel.Enabled = False
AnswerTextBox.Enabled = False
EmailPasswordButton.Enabled = False
Else
QuestionLabel.Text = user.PasswordQuestion
QuestionLabel.Enabled = True
AnswerTextBox.Enabled = True
EmailPasswordButton.Enabled = True
End If
End Sub
Public Sub EmailPassword_OnClick(ByVal sender As Object, ByVal args As EventArgs)
' Note: Returning a password in clear text using email is not recommended for
' sites that require a high level of security.
Try
Dim password As String = Membership.Provider.GetPassword(UsernameTextBox.Text, AnswerTextBox.Text)
Dim u As MembershipUser = Membership.GetUser(UsernameTextBox.Text)
EmailPassword(u.Email, password)
Msg.Text = "Your password was sent via email."
Catch e As MembershipPasswordException
Msg.Text = "The password answer is incorrect. Please check the value and try again."
Catch e As System.Configuration.Provider.ProviderException
Msg.Text = "An error occurred retrieving your password. Please check your values " & _
"and try again."
End Try
End Sub
Private Sub EmailPassword(ByVal email As String, ByVal password As String)
Try
Dim Message As MailMessage = New MailMessage("administrator", email)
Message.Subject = "Your Password"
Message.Body = "Your password is: " & Server.HtmlEncode(password)
Dim SmtpMail As SmtpClient = New SmtpClient("SMTPSERVER")
SmtpMail.Send(Message)
Catch
Msg.Text = "An exception occurred while sending your password. Please try again."
End Try
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: Retrieve Password</title>
</head>
<body>
<form id="form1" runat="server">
<h3>
Retrieve Password</h3>
<asp:Label ID="Msg" runat="server" ForeColor="maroon" /><br />
Username:
<asp:TextBox ID="UsernameTextBox" Columns="30" runat="server" AutoPostBack="True" />
<asp:RequiredFieldValidator ID="UsernameRequiredValidator" runat="server" ControlToValidate="UsernameTextBox"
ForeColor="red" Display="Static" ErrorMessage="Required" /><br />
Password Question: <b>
<asp:Label ID="QuestionLabel" runat="server" /></b><br />
Answer:
<asp:TextBox ID="AnswerTextBox" Columns="60" runat="server" Enabled="False" />
<asp:RequiredFieldValidator ID="AnswerRequiredValidator" runat="server" ControlToValidate="AnswerTextBox"
ForeColor="red" Display="Static" ErrorMessage="Required" Enabled="False" /><br />
<asp:Button ID="EmailPasswordButton" Text="Email My Password" OnClick="EmailPassword_OnClick"
runat="server" Enabled="False" />
</form>
</body>
</html>
Hinweise
Diese Methode wird von der Membership -Klasse aufgerufen, um Benutzerinformationen aus der SQL Server-Datenbank abzurufen, die in der Konfigurationsdatei der ASP.NET Anwendung (Web.config) angegeben ist.
Wenn userIsOnline
ist true
, wird der Datums-/Zeitstempel der letzten Aktivität für den Benutzer auf das aktuelle Datum und die aktuelle Uhrzeit aktualisiert. Dies spiegelt sich in den LastActivityDate Eigenschaften und IsOnline und im von GetNumberOfUsersOnlinezurückgegebenen Wert wider.
Beim username
-Parameterwert werden führende und nachstehende Leerzeichen abgeschnitten.
Weitere Informationen
Gilt für:
GetUser(Object, Boolean)
Ruft die Informationen aus der Datenquelle für den Mitgliedschaftsbenutzer ab, der dem angegebenen eindeutigen Bezeichner zugeordnet ist, und aktualisiert gegebenenfalls den Datums-/Zeitstempel der letzten Aktivität des Benutzers.
public:
override System::Web::Security::MembershipUser ^ GetUser(System::Object ^ providerUserKey, bool userIsOnline);
public override System.Web.Security.MembershipUser GetUser (object providerUserKey, bool userIsOnline);
override this.GetUser : obj * bool -> System.Web.Security.MembershipUser
Public Overrides Function GetUser (providerUserKey As Object, userIsOnline As Boolean) As MembershipUser
Parameter
- providerUserKey
- Object
Der eindeutige Bezeichner für den Benutzer.
- userIsOnline
- Boolean
true
, um den Datums-/Zeitstempel der letzten Aktivität für den angegebenen Benutzer zu aktualisieren, andernfalls false
.
Gibt zurück
Ein MembershipUser-Objekt, das den Benutzer darstellt, der dem angegebenen eindeutigen Bezeichner zugeordnet ist. Wenn für den angegebenen providerUserKey
-Wert kein Benutzer in der Datenbank gefunden wird, wird null
zurückgegeben.
Ausnahmen
providerUserKey
ist null
.
providerUserKey
ist nicht vom Typ Guid.
Hinweise
GetUser ruft die Benutzerinformationen aus der Datenquelle ab und erstellt ein MembershipUser Objekt, das mit den zurückgegebenen Daten aufgefüllt ist. Der Benutzer wird mithilfe des eindeutigen Bezeichners identifiziert, der mit dem providerUserKey
Parameter angegeben ist.