2012-04-23 2 views
1

ASP.NET MVC의 인증 작동 방식을 이해하려고합니다. 내장 된 MembershipProvider가 배후에서 로컬 데이터베이스를 생성하는 것을 원하지 않습니다. 또한 맞춤 회원 제공자에 관한 블로그 게시물을 살펴 보았습니다. 훨씬 단순한 형태의 인증 모델을 찾고있는 동안, 나는 다음과 같은 발견공급자없이 ASP.NET MVC에서 사용자를 인증하는 간단한 방법

FormsAuthentication.SetAuthCookie("myusername", true); 
FormsAuthentication.SignOut(); 

아이디어는 사용자 이름을 보내는 것입니다 및 데이터베이스에 암호를 해시하고 그들이 거기에 기록과 일치하는지 확인 소금에 절인. 사용자가 존재하면 SethAuthCookie에 사용자 이름을 전달합니다. 내 질문 :

  • 사용자 이름을 암호화해야합니까?
  • 여러 서버가 있고 사용자가 웹 사이트를 서핑하는 경우 어떻게됩니까? 나는 서버 중 하나가 사용자에게 콘텐츠를 제공 할 수 있다고 믿는다. 그래서 사용자가 인증되었는지 어떻게 알 수 있을까?
  • 공급자가없는 MVC에서 사용자를 인증하는 기본 방법은 무엇입니까? 올바른 길을 가고 있습니까? 아니면 다른 것을 조사해야합니까?

답변

3

사용자 이름을 암호화해야합니까?

번호

가 여러 서버이며, 사용자가 웹 사이트를 서핑하면 어떻게됩니까

? 나는 서버 중 하나가 사용자에게 콘텐츠를 제공 할 수 있다고 믿는다. 그래서 사용자가 인증되었는지 어떻게 알 수 있을까? 각각

서버가 클라이언트 브라우저로 전송되고있는이 FormsAuthentication.SetAuthCookie 호출에 의해 생성 된 인증 쿠키를 판독하여 해독하고 내부에 저장되어있는 사용자 이름을 검색 요청한다. 서버 팜의 모든 노드에 대해 동일한 시스템 키를 설정했는지 확인하여 어느 노드가 인증 쿠키를 생성했는지에 상관없이 다른 모든 노드가 해독 할 수 있도록하십시오.

제공자가 없으면 MVC에서 사용자를 인증하는 가장 좋은 방법은 무엇입니까? 나는 올바른 길을 가고 있습니까, 아니면 다른 것을 조사해야합니까?

올바른 길을 가고 있습니다. 암호 해시가 데이터베이스의 사용자와 일치하는지 확인한 후 FormsAuthentication.SetAuthCookie 메서드를 사용하면 암호 해시가 User.Identity.Name 속성을 사용하여 현재 인증 된 사용자를 검색 할 수있는 후속 작업에서 일치하는지 확인한 후 인증 쿠키를 내보낼 수 있습니다.

following article은 ASP.NET에서 양식 인증이 작동하는 방식에 대한 개요를 제공합니다.

관련 문제