SqlMembershipProvider.ChangePasswordQuestionAndAnswer 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
SQL Server 멤버 자격 데이터베이스에서 사용자에 대한 암호 질문과 대답을 업데이트합니다.
public:
override bool ChangePasswordQuestionAndAnswer(System::String ^ username, System::String ^ password, System::String ^ newPasswordQuestion, System::String ^ newPasswordAnswer);
public override bool ChangePasswordQuestionAndAnswer (string username, string password, string newPasswordQuestion, string newPasswordAnswer);
override this.ChangePasswordQuestionAndAnswer : string * string * string * string -> bool
Public Overrides Function ChangePasswordQuestionAndAnswer (username As String, password As String, newPasswordQuestion As String, newPasswordAnswer As String) As Boolean
매개 변수
- username
- String
암호 질문 및 대답을 변경하려는 사용자입니다.
- password
- String
지정된 사용자의 암호입니다.
- newPasswordQuestion
- String
지정된 사용자의 새 암호 질문입니다.
- newPasswordAnswer
- String
지정된 사용자의 새 암호 대답입니다.
반환
업데이트에 성공했으면 true
이고, 실패했으면 false
입니다.
password
이 올바르지 않거나 사용자가 잠겨 있거나 데이터베이스에 사용자가 없어도 false
값이 반환됩니다.
예외
username
이 빈 문자열("")이거나 쉼표를 포함하거나 256자보다 긴 경우
또는
password
가 빈 문자열이거나 128자보다 긴 경우
또는
newPasswordQuestion
가 빈 문자열이거나 256자보다 긴 경우
또는
newPasswordAnswer
가 빈 문자열이거나 128자보다 긴 경우
또는
인코딩된 버전의 newPasswordAnswer
가 128자보다 긴 경우
username
이(가) null
인 경우
또는
password
은 null
입니다.
또는
newPasswordQuestion
가 null
이고 RequiresQuestionAndAnswer이 true
인 경우
또는
newPasswordAnswer
가 null
이고 RequiresQuestionAndAnswer이 true
인 경우
데이터베이스에서 암호 질문과 대답을 변경할 때 오류가 발생한 경우
예제
다음 코드 예제에서는 사용자에 대한 암호 질문 및 답변을 업데이트합니다.
참고
이 예제에서는 클래스의 ProviderMembership 속성을 사용하여 지정된 를 SqlMembershipProvider Web.config 파일에서 로 defaultProvider
호출합니다. 기본 공급자에 형식 SqlMembershipProvider으로 액세스해야 하는 경우 클래스의 속성을 캐스팅할 ProviderMembership 수 있습니다. 특정 공급자 유형으로 구성된 다른 공급자에 액세스하려면 클래스의 Membership 속성을 사용하여 구성된 이름으로 Providers 액세스하고 특정 공급자 유형으로 캐스팅할 수 있습니다.
<%@ 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 ChangePasswordQuestion_OnClick(object sender, EventArgs args)
{
try
{
if (Membership.Provider.ChangePasswordQuestionAndAnswer(User.Identity.Name,
PasswordTextbox.Text,
QuestionTextbox.Text,
AnswerTextbox.Text))
Msg.Text = "Password question and answer changed.";
else
Msg.Text = "Change failed. Please reenter your values and try again.";
}
catch (System.Configuration.Provider.ProviderException e)
{
Msg.Text = "Change failed. Please reenter your values and try again.";
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: Change Password Question and Answer</title>
</head>
<body>
<form id="form1" runat="server">
<h3>Change Password Question and Answer for <%=User.Identity.Name%></h3>
<asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />
<table cellpadding="3" border="0">
<tr>
<td>Password:</td>
<td><asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /></td>
<td><asp:RequiredFieldValidator id="OldPasswordRequiredValidator" runat="server"
ControlToValidate="PasswordTextbox" ForeColor="red"
Display="Static" ErrorMessage="Required" /></td>
</tr>
<tr>
<td>New Password Question:</td>
<td><asp:Textbox id="QuestionTextbox" MaxLength="256" Columns="60" runat="server" /></td>
<td><asp:RequiredFieldValidator id="QuestionRequiredValidator" runat="server"
ControlToValidate="QuestionTextbox" ForeColor="red"
Display="Static" ErrorMessage="Required" /></td>
</tr>
<tr>
<td>New Password Answer:</td>
<td><asp:Textbox id="AnswerTextbox" MaxLength="128" Columns="60" runat="server" /></td>
<td><asp:RequiredFieldValidator id="AnswerRequiredValidator" runat="server"
ControlToValidate="AnswerTextbox" ForeColor="red"
Display="Static" ErrorMessage="Required" /></td>
</tr>
<tr>
<td></td>
<td><asp:Button id="ChangePasswordQuestionButton"
Text="Change Password Question and Answer"
OnClick="ChangePasswordQuestion_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">
Public Sub ChangePasswordQuestion_OnClick(sender As Object, args As EventArgs)
Try
If Membership.Provider.ChangePasswordQuestionAndAnswer(User.Identity.Name, _
PasswordTextbox.Text, _
QuestionTextbox.Text, _
AnswerTextbox.Text) Then
Msg.Text = "Password question and answer changed."
Else
Msg.Text = "Change failed. Please reenter your values and try again."
End If
Catch e As System.Configuration.Provider.ProviderException
Msg.Text = "Change failed. Please reenter your values and try again."
End Try
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: Change Password Question and Answer</title>
</head>
<body>
<form id="form1" runat="server">
<h3>Change Password Question and Answer for <%=User.Identity.Name%></h3>
<asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />
<table cellpadding="3" border="0">
<tr>
<td>Password:</td>
<td><asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /></td>
<td><asp:RequiredFieldValidator id="OldPasswordRequiredValidator" runat="server"
ControlToValidate="PasswordTextbox" ForeColor="red"
Display="Static" ErrorMessage="Required" /></td>
</tr>
<tr>
<td>New Password Question:</td>
<td><asp:Textbox id="QuestionTextbox" MaxLength="256" Columns="60" runat="server" /></td>
<td><asp:RequiredFieldValidator id="QuestionRequiredValidator" runat="server"
ControlToValidate="QuestionTextbox" ForeColor="red"
Display="Static" ErrorMessage="Required" /></td>
</tr>
<tr>
<td>New Password Answer:</td>
<td><asp:Textbox id="AnswerTextbox" MaxLength="128" Columns="60" runat="server" /></td>
<td><asp:RequiredFieldValidator id="AnswerRequiredValidator" runat="server"
ControlToValidate="AnswerTextbox" ForeColor="red"
Display="Static" ErrorMessage="Required" /></td>
</tr>
<tr>
<td></td>
<td><asp:Button id="ChangePasswordQuestionButton"
Text="Change Password Question and Answer"
OnClick="ChangePasswordQuestion_OnClick"
runat="server" /></td>
</tr>
</table>
</form>
</body>
</html>
설명
이 메서드는 MembershipUser 암호 질문을 업데이트 하 고 ASP.NET 애플리케이션의 구성 파일 (Web.config)에 지정 된 SQL Server 데이터베이스의 사용자에 대 한 대답 하는 클래스입니다. 암호 응답은 속성에 지정된 형식을 사용하여 암호화됩니다 PasswordFormat .
암호 질문과 대답을 요구하면 사용자의 암호를 검색하거나 재설정할 때 추가 보안 계층이 제공됩니다. 사용자 이름을 만들 때 사용자는 나중에 잊어버린 암호를 검색하거나 재설정하는 데 사용할 수 있는 질문과 대답을 제공할 수 있습니다. 메서드는 ChangePasswordQuestionAndAnswer 멤버 자격 사용자에 대한 암호 질문과 답변을 업데이트합니다.
잘못된 암호를 메서드에 ChangePasswordQuestionAndAnswer 제공하면 잘못된 암호 시도를 추적하는 내부 카운터가 하나씩 증가합니다. 이로 인해 사용자가 잠기고 메서드를 호출 UnlockUser 하여 잠금 상태가 지워질 때까지 로그온할 수 없습니다. 올바른 암호가 제공되고 사용자가 현재 잠겨 있지 않으면 잘못된 암호 및 암호 응답 시도를 추적하는 내부 카운터가 0으로 다시 설정됩니다. 자세한 내용은 MaxInvalidPasswordAttempts 및 PasswordAttemptWindow 속성을 참조하세요.
암호 질문의 최대 길이는 256자입니다. 암호 응답의 최대 길이는 128자입니다.
자세한 내용은 RequiresQuestionAndAnswer, ResetPassword 및 GetPassword을 참조하십시오.
선행 및 후행 공백은 모든 매개 변수 값에서 잘립니다.
적용 대상
추가 정보
.NET