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.ResetPassword أسلوب

Visual Studio 2010

إعادة تعيين كلمة مرور مستخدم إلى كلمة مرور جديدة، auإلىmatically التي تم إنشاؤها.

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

public override string ResetPassword(
	string username,
	string passwordAnswer
)

المعلمات

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

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

النوع: System.String
The كلمة المرور الجديدة for the specified مستخدم.

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

passwordAnswer غير صالح.

-أو-

حساب مستخدم هو مؤمن حاليا.

System.NotSupportedException

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

System.Configuration.Provider.ProviderException

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

-أو-

تم إلغاء إجراء تغيير كلمة المرور بواسطة مشترك إلى ValidatingPasswordحدث و FailureInformationخاصية تم null.

-أو-

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

System.ArgumentException

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

-أو-

passwordAnswerسلسلة فارغ أو أطول من 128 حرف/ حروف، وRequiresQuestionAndAnswerهوtrue.

-أو-

passwordAnswerهو أطول من 128 حرفاً بعد الترميز.

System.ArgumentNullException

username هو null.

-أو-

passwordAnswerهوnullوRequiresQuestionAndAnswerهوtrue.

Exception

حدث استثناء غير معالج.

Th هو أسلوب هو استدعاؤها بواسطة Membershipتحديد فئة لإعادة تعيين كلمة المرور لمستخدم في قاعدة بيانات SQL الخادم في ملف تكوين للتطبيق ASP.NET (ويب.config) لجديد والذي تم إنشاؤه عشوائياً القيمة. كلمة المرور الجديدة هو التي يتم إرجاعها.

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

كلمة مرور عشوائية انشئت بواسطة ResetPasswordأسلوب هو غير مضمون لتمرير تعبير عادي في PasswordStrengthRegularExpressionخاصية. ومع ذلك، تطابق كلمة المرور عشوائية خصائص تأسيس بواسطة MinRequiredPasswordLengthو MinRequiredNonAlphanumericCharactersالخصائص.

ResetPassword أسلوب هو الأكثر استخداماً عند PasswordFormatخاصية هو تعيين إلى Hashed. إذا نسي مستخدم كلمة مرور التي هو hashed، كلمة المرور ولا يمكن استرداده. على الرغم من ذلك، يقوم موفر يمكن يعيد تعيين المعاملة كلمة المرور إلى كلمة مرور جديدة والتي تنشأ تلقائياً إذا كان مستخدم بتوفير كلمة المرور الصحيحة الإجابة.

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

يمكنك استدعاء ResetPasswordأسلوب مباشرة بالحصول أولاً على مرجع إلى SqlMembershipProviderمثيل من Providerخاصية Membershipفئة. The generated كلمة المرور will be على الأقل 14 حرف/ حروف long, أو the الطول specified في the MinRequiredPasswordLength خاصية, و will contain the رقم of non-alphanumeric حرف/ حروف specified في the MinRequiredNonAlphanumericCharacters خاصية. The كلمة المرور ليس guaranteed إلى pass the عادي تعبير contained في the PasswordStrengthRegularExpression خاصية, if واحد هو specified.

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

The following تعليمات برمجية مثال resets a مستخدم's كلمة المرور و إرجاع the جديد, automatically generated كلمة المرور.

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

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


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

public void Page_Load(object sender, EventArgs args)
{
  if (!Membership.EnablePasswordReset)
  {
    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 reenter your user name.";

      QuestionLabel.Text = "";
      QuestionLabel.Enabled = false;
      AnswerTextBox.Enabled = false;
      ResetPasswordButton.Enabled = false;
    }
    else
    {
      QuestionLabel.Text = user.PasswordQuestion;
      QuestionLabel.Enabled = true;
      AnswerTextBox.Enabled = true;
      ResetPasswordButton.Enabled = true;
    }
}

public void ResetPassword_OnClick(object sender, EventArgs args)
{
  string newPassword = "";

  try
  {
    newPassword = Membership.Provider.ResetPassword(UsernameTextBox.Text, AnswerTextBox.Text);
  }
  catch (NotSupportedException e)
  {
    Msg.Text = "An error has occurred resetting your password: " + e.Message + "." +
               "Please check your values and try again.";
  }
  catch (MembershipPasswordException e)
  {
    Msg.Text = "Invalid password answer. Please reenter the answer and try again.";
    return;
  }
  catch (System.Configuration.Provider.ProviderException e)
  {
    Msg.Text = "The specified user name does not exist. Please check your value and try again.";
  }

  if (newPassword != "")
  {
    Msg.Text = "Password reset. Your new password is: " + Server.HtmlEncode(newPassword);
  }
  else
  {
    Msg.Text = "Password reset failed. Please reenter your values and try again.";
  }
}


</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: Reset Password</title>
</head>
<body>

<form id="form1" runat="server">
  <h3>Reset 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="ResetPasswordButton" Text="Reset Password" 
              OnClick="ResetPassword_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
إظهار: