2010-08-05 7 views
3

수백만 번 요청되었지만 매우 단순한 시나리오 또는 나에게 많이 사용되지 않는 지나치게 복잡한 시나리오 (예 : 거대한 MembershipProvider 샘플 MSDN에서 구현).ASP.Net MVC 인증

내 문제는 : 사용자 테이블이있는 데이터베이스가 있습니다. 사용자는 사용자 이름, 암호 및 기타 중요한 정보를 가지고 있습니다. 내가 원하는 것은 페이지에 인증이 필요하다는 것입니다. 사용자가 이미 애플리케이션에 가입했다면 uname/pwd를 사용하여 인증 할 수 있습니다. 그렇지 않으면 필요한 모든 정보를 입력하여 등록 할 수 있습니다. 역할 없음, 특별한 권한 없음, 아무 것도 없음, 단순한 단순한 인증.

나는 그것이 직설적이어야한다고 생각한다. 나는 그것이 충분히 분리되어 있는지 확인하고 내 내장 인증 시스템이 이미 있으면 사용할 수 있고 테스트를 받고 싶지 않다.

감사합니다.

편집 : 기본 공급자가 잘 작동해야하므로
단지 설명을 위해, 내가 SQL Server 데이터베이스를 사용하고, 사용자 정의는 MembershipProvider 필요하지 않습니다. 문제는 실제로 사용자에게 필요한 정보를 간단하게 정의 할 수있는 방법입니다.

답변 :. 난 결국 내 자신의는 MembershipProvider 클래스를 파생시키고 내가 관심이 있던 메소드를 오버라이드 (override)했다
그것은 내가 ANS가 잘 작동 생각했던 것보다 훨씬 간단했다.

답변

2

Visual Studio (2008, 2010)를 사용하면 ASP.NET MVC2 응용 프로그램을 만들 수 있습니다 (걱정할 필요는 없으며 계속 사용하여 공부할 수 있습니다). 이 인터페이스 당신이 원하는 방식을 구현할 수 있습니다 응용 프로그램에서

public interface IMembershipService { 
    int MinPasswordLength { get; } 
    bool ValidateUser(string userName, string password); 
    MembershipCreateStatus CreateUser(string userName, string password, string email); 
    bool ChangePassword(string userName, string oldPassword, string newPassword); 
} 

, 예를 들면 : 생성 된 코드에서 인터페이스 IMembershipService를 보라 사용자 테이블에 저장 한 정보를 사용하는 클래스로

또 다른 예는 WCF 기반 웹 서비스를 사용하는 클래스입니다. 이것은 최근 프로젝트 중 하나에서 사용한 접근 방법입니다.

나머지 모든 항목은 이미 유선으로 연결되어 있습니다.

+0

내 회원 등급에서 IMembershipService를 구현하는 것은 나만의 인증 시스템을 만드는 것과 크게 다르지 않습니다. 단지 인터페이스 일뿐입니다. 더 높은 수준의 것을 활용하고 싶습니다. 그것이 가능하다면 말이죠. 어쨌든, 그것이 밝혀지면 그것을하는 유일한 방법입니다. 그렇다면 그렇게하십시오. – DrunkenBeard