2009-08-14 6 views
2

강력한 형식의보기에서 암호의 유효성을 검사하고 암호 필드를 확인하는 가장 좋은 방법은 무엇입니까?ASP.NET MVC | 어떻게 비밀 번호를 확인 가치를 다루는가?

암호 필드 코드 :

<label for="BaseUser.PasswordHash">Password</label> 
<%= Html.Password("BaseUser.PasswordHash", Model.BaseUser.PasswordHash)%> 
<%= Html.ValidationMessage("BaseUser.PasswordHash", "*")%> 

내가 MVC의 방법으로 암호 확인 필드를 처리하는 방법을 모르겠어요. 또는 자바 스크립트를 사용하여 유효성을 검사합니까?

+0

이 질문에서이 답변을 확인하십시오. http://stackoverflow.com/questions/2450198/how-to-validate-two-properties-with-asp-net-mvc-2 –

답변

4

이러한 종류의 UI 유효성 검사 규칙은 컨트롤러에서 수행 할 수 있습니다 (원래의 대답과 반대). Nerddinner.com 소스 코드를 다운로드하려면 특정 예제를 보려면 ValidateRegistration 메서드가 호출되는 AccountController.Register 메서드를 살펴보십시오.

http://tinyurl.com/aspnetmvc 에서 무료 PDF 다운로드로 제공되는 nerddinner.com 사이트를 완전히 살펴 보았지만 특정 질문에 대한 세부 정보는 다루지 않으므로 표시된대로 소스 코드를 확인하십시오. 위.

사용자 경험을 점차적으로 향상 시키려면 뷰에서 jquery 유효성 검사 플러그인을 계층화하여 클라이언트 측의 유효성을 검사 할 수 있습니다.

자바 스크립트를 통해 클라이언트에서 유효성 검사를 수행하는 것이 위험하다는 것을 기억하십시오. 누군가가해야하는 일은 비즈니스 규칙을 피하기 위해 자바 스크립트를 끄고 XSS와 같은 보안 공격을 막는 "심층 방어"의 한 계층을 우회하는 것입니다 및 SQL 주입.

+0

답장을 보내 주셔서 감사합니다. 위에서 볼 수 있듯이 랩 모델을 사용하여 뷰를 표현합니다. 그러나 필자는 시나리오에서 암호 확인 작업을 처리하는 방법을 알지 못합니다. 내가 아는 유일한 방법은 분명히 모범 사례가 아닌 FormCollection List를 트래버스하는 것입니다. –

+0

암호 확인 등록 정보를 사용하여 모델을 진부하게 만들지 않으려면 사용자 지정 ModelBinder에서이 특정 유효성 검사를 수행 할 수 있습니다. 하지만 모든 비즈니스/유효성 검사 규칙이 Model.BaseUser 또는 Model.User에 있어야합니다. 회신에 감사드립니다. –

0

나는 자바 스크립트 가야 할 길이다. 서버에서 검증 루틴을 원한다면 (어쨌든 표준 MVC입니까?), 그렇다면 괜찮습니다.

하지만 "비밀번호가 일치하지 않습니다"와 같이 쉽게 무언가를 왕복으로 이동하십시오. 누군가가 "해킹"(예 : 자바 스크립트 사용 안함)하여 일치하지 않는 두 개의 비밀번호를 제출할 수 있도록하려면 괜찮습니다.

서버에서 수행하려면 두 개의 개별 필드가 있고 일치하지 않으면 오류가 발생합니다.

+0

내 문제는 사용자 가입보기가 아니라 비밀번호 입력란 값과 비밀번호 확인 필드 값을 확인하는 방법을 모르겠다는 것입니다. –

관련 문제