2013-12-15 2 views
0

MVC 5에 대해 알기 시작했으며 내장 된 owin 인증을 사용하려고합니다.ASP.NET MVC 5 OWIN 인증

IIS를 사용하여 폼 인증을 구현해야하지만 OWIN 인증은 내가 기다리는 것보다 복잡합니다.

사용자, 역할 및 RoleUser 테이블이있는 Entity Framework 모델이 있으며이 테이블을 통해 사용자를 인증하려고합니다.

샘플 mvc 5 응용 프로그램에서 owin이 작동하는 방식을 알아 냈습니다. 그것은 ApplicationUser 클래스를 가지고 있습니다 :

public class ApplicationUser : IdentityUser 
{ 
} 

public class ApplicationDbContext : IdentityDbContext<ApplicationUser> 
{ 
    public ApplicationDbContext() 
     : base("DefaultConnection") 
    { 
    } 
} 

저의 가장 큰 문제는 IdentityUser입니다. IUser 인터페이스 구현 및 DbContext 연결을 가진 자체 ASP.NET 사용자 클래스입니다. EF 모델에서 고유 한 사용자 POCO 엔터티가 있고 ASP.NET IUser 인터페이스와 혼합하고 싶지 않습니다. 왜 그런지 알지만, IUser 인터페이스의 ID는 문자열 유형입니다. 이것은 나에게도 적용되지 않습니다.

의 owin 비동기 사용자의 기호는 다음과 같다 :

그것은 사용자와 IUSER 인터페이스를 구현해야합니다 사용자 속성에 서명 정체성의 ClaimsIdentity 유형을 작성하는 것이 좋습니다
private async Task SignInUserAsync(User user, bool isPersistent) 
{ 
    AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie); 
    ClaimsIdentity identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie); 
    AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent }, identity); 
} 

.

큰 질문 : 오웬이 내 환경에서 사용할 것을 제안합니까? 내 사용자 클래스를 owin 인증과 함께 사용하고 싶지만 어떻게해야할지 모르겠다.

미리 감사드립니다.

답변

0

제가 생각할 수있는 가장 좋은 방법은 POCO 클래스를 IdentityUser에서 파생시키는 것입니다. 이렇게하면 새 클래스의 일부로 POCO 속성을 추가 할 수 있습니다. OWIN 당신이 쉽게 FB, 구글과 같은 제 3 자 인증을 통합 할 수 있도록 사용

UserManager um = new UserManager<YourPocoDerivedFromIdentityUser>(new UserStore<YourPocoDerivedFromIdentityUSer>(new ApplicationDbContext()) 

: 이 후 같은 새로운 UserManager를 인스턴스화 할 수 있습니다. OWIN 팀은 MVC와의 통합 작업을 정말 잘 해냈습니다.

그러나 현재 인증 시스템이 제대로 작동하는 경우 업그레이드 이유를 알 수 없습니까?

P. - http://www.apress.com/files/extra/ASP_NET_Identity_Chapters.pdf

새 아이덴티티 시스템에서 3 개의 챕터를 찾을 수 있습니다. 그것들은 아주 잘 읽었으며 여러분이 시작하도록 권합니다.

2

전체 ASP.NET ID 모델을 도려 내고 암호 확인 및 역할/소유권 주장 저장을 위해 자체 구성 요소를 사용할 수 있습니다.

http://www.khalidabuhakmeh.com/asp-net-mvc-5-authentication-breakdown-part-deux

회원/인증 및 양식 인증은 ID 및 액세스 관리의 두 가지 기능입니다. Microsoft 설명서는이 두 가지의 차이점에 대해 설명하지 않습니다. 이 설명은 짧고 달콤한 글입니다. 이 기사는 OWIN 이전에 작성되었지만 동일한 원칙이 적용됩니다.

http://brockallen.com/2012/06/04/membership-is-not-the-same-as-forms-authentication/