This article was translated by machine. To view in the article in English, select the English check box. You can also display the English text in a popup window by moving the mouse pointer over the text.
الترجمة
الأصلي
This documentation is archived and is not being maintained.

SqlMembershipProvider.GetPassword أسلوب

Visual Studio 2010

إرجاع كلمة المرور لاسم مستخدم المحدد من ملقم SQL عضوية قاعدة البيانات.

مساحة الاسم:  System.Web.Security
التجميع:  System.Web (في System.Web.dll)

public override string GetPassword(
	string username,
	string passwordAnswer
)

المعلمات

username
النوع: System.String
المستخدم إلى استرداد كلمة المرور الخاصة.
passwordAnswer
النوع: System.String
إجابته كلمة المرور في مستخدم.

القيمة المُرجعة

النوع: System.String
كلمة المرور للمحدد اسم مستخدم.

استثناء:شرط
System.Web.Security.MembershipPasswordException

passwordAnswer غير صالح.

-أو-

مستخدم عضوية المعرف بواسطة usernameهو تأمين مسح.

System.NotSupportedException

EnablePasswordRetrieval يتم تعيينه إلى false .

System.Configuration.Provider.ProviderException

usernameهو غير موجود في قاعدة بيانات العضوية.

-أو-

حدث خطأ أثناء استرداد كلمة المرور من قاعدة بيانات.

System.ArgumentException

واحد من قيم المعلمات يتجاوز الحد الأقصى للطول المسموح به.

-أو-

username هو an فارغ سلسلة (""), يحتوي على a فاصلة, أو هو longer than 256 حرف/ حروف.

-أو-

passwordAnswerسلسلة فارغ وRequiresQuestionAndAnswerهوtrue.

-أو-

passwordAnswerهو أكبر من 128 حرفاً.

-أو-

The encoded الإصدار of passwordAnswer هو أكبر من 128 حرف/ حروف.

System.ArgumentNullException

username هو null.

-أو-

passwordAnswerهوnullوRequiresQuestionAndAnswerهوtrue.

Th هو أسلوب هو استدعاؤها بواسطة MembershipUserفئة استرداد كلمة المرور الخاصة بمستخدم من خادم قاعدة بيانات SQL المحدد في ملف تكوين للتطبيق ASP.NET (ويب.config).

إذا تم توفير إجابة كلمة مرور غير صحيحة إلى GetPasswordالأسلوب، العداد الداخلية التي تتعقب غير صالح يتزايد محاولات الإجابة بكلمة المرور لأحد. يمكن أن يؤدي هذا مستخدم يتم قفله وقادر تشغيل يسجل تشغيل حتى يتم إلغاء تحديد حالة القفل بمكالمة إلى UnlockUserالأسلوب. If the correct كلمة المرور answer هو supplied و the مستخدم ليس currently مؤمّن خارج, then the internal العداد that tracks كلمة مرور غير صالحة-answer attempts هو يعيد تعيين المعاملة إلى zero. لمزيد من المعلومات، راجع MaxInvalidPasswordAttemptsو PasswordAttemptWindowالخصائص.

يمكنك استدعاء GetPasswordأسلوب مباشرة بواسطة أولاً الحصول على مرجع إلى SqlMembershipProviderمثيل من خلال Providerخاصية Membershipفئة.

If the PasswordFormat خاصية هو التعيين إلى Hashed, the GetPassword أسلوب cannot retrieve the كلمة المرور. Hashed passwords are encrypted واحد-way و cannot be decrypted. إذا PasswordFormatخاصية هو تعيين إلى Hashed، و EnablePasswordRetrievalهو تعيين إلى true، ProviderExceptionهو طرح متى الموفر هو تهيئة.

بادئة و يتم قطع مسافات زائدة من الجميع قيم المعلمات.

The following تعليمات برمجية مثال retrieves the كلمة المرور for a specified مستخدم اسم و sends it إلى the مستخدم في an e-بريد رسالة.

ملاحظةملاحظة

إرجاع كلمة مرور في نص صريح باستخدام البريد الإلكتروني غير مستحسن للمواقع التي تتطلب مستوى عالي من الأمان. For عالي-الأمان sites, we recommend that you return passwords using تشفير, such كـ SSL.

ملاحظةملاحظة

هذا النموذج باستدعاء SqlMembershipProviderالمحدد defaultProviderفي ملف ويب.config بواسطة استخدام Membershipفئة. إذا كنت تحتاج إلى الوصول إلى موفر الافتراضي ك نوع SqlMembershipProvider، يمكن تحويل Providerخاصية Membershipفئة. تكوين موفري كنوع موفر محدد الوصول إلى الآخر، يمكن الوصول إليها مع الاسم المكون مع Providersخاصية Membershipالفئة و تحويل عليها كنوع الموفر المحدد.


<%@ 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 e-mail 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 e-mail.";
  }
  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>


نظام التشغيل Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, الإصدار x64 من نظام التشغيل Windows XP Professional, Windows XP Starter Edition, Windows Server 2008, نظام التشغيل Windows Server 2003, نظام التشغيل Windows Server 2000 المزود بحزمة الخدمة SP4, نظام التشغيل Windows Millennium Edition, نظام التشغيل Windows 98

لا يدعم .NET Framework و .NET Compact Framework كافة الإصدارات الخاصة بكل نظام أساسي. للحصول على قائمة بالإصدارات المدعمة، راجع متطلبات النظام إطار عمل .NET.

.NET Framework

مدعوم في: 4, 3.5, 3.0, 2.0
إظهار: