2015-01-29 4 views
2

첫 번째 ASP.NET MVC 웹 응용 프로그램을 구현 중이며 대학생을위한 설문지입니다. 이미 모델, 일부 컨트롤러 및 뷰를 구현했습니다.기본 로그인 컨트롤러

내가 지금 필요한 것은 로그인 컨트롤러입니다. 저는 관리자, 학생, 교수 및 조교 인 역할을 담당하게 될 것입니다. 필자는 이미이 프로필에 대한 모델 클래스를 구현했지만 로그인을 위해 아무 것도 추가하지 않았습니다. 필자의 경우 보안 로깅을 구현하는 가장 적합한 방법은 무엇입니까? 무엇을 사용할 것인가? 사용자 이름과 비밀번호와 같은 클래스에 속성을 추가 할 것인가 아니면 일부 도구로 생성 된 사용자를 위해 분리 된 테이블을 가질 것인가?

ASP.NET ID를 사용하려고하면 기존 모델의 데이터베이스 및 삭제 된 테이블에서 일부 테이블이 생성되었습니다. 내 모델의 테이블을 별도의 데이터베이스에 저장해야합니까?

+1

ASP.Net ID를 사용하십시오. – SLaks

+0

Microsoft는 이미 이러한 시나리오를 처리 할 수있는 프레임 워크를 구축했습니다. 보안/인증/권한 부여가 관련되어있을 때 누군가 다른 사람이 이미 구현 한 바퀴를 재발 명하지 않는 것이 가장 좋습니다. –

답변

1

ASP.NET ID Foundation으로 갈 수 있습니다. 그것은 ASP.NET MVC에 내장되어 있으며 응용 프로그램 모델에 맞게 사용자 정의 할 수있는 자체 ApplicationDB 컨텍스트가 있습니다.

구현하면 DB에 ApplicationUsers, AspNetRoles, AspNetUserLogins, AspNetUserRoles 및 AspNetUsers라는 해당 클래스가 제공됩니다. 코드 첫 번째 접근 방식을 사용하는 경우 코드에서 ApplicationUsers 테이블에 외래 키를 적용 할 수 있습니다.

숙련되고 안전하며 구현하기 쉽습니다.

+0

AspNetUsers의 학생, 교수, 교직원 모두의 인스턴스에 대한 외래 키가 있습니까? – bambi

+0

다른 사람 유형을 확장하는 일반적인 Person 클래스를 만들었 으면합니다. 그렇다면 AspNetUsers의 Id 필드에 대한 외래 키로 PersonId를 참조 할 수 있습니다. 알고 있어야하는 유일한 점은 Id 필드가 string 유형이고 (nvarchar (128)) DB에 있어야한다는 것입니다. 생성 될 때 person 객체에 할당 할 수있는 해시드 ID입니다. – RizJa

+0

그래서 PersonId도 string 유형이어야합니까? 사용자를 생성 할 때도 Person을 생성하고 PersonId를 AspNetUsers에 해당 사용자의 ID로 지정합니다. – bambi