ASP.Net 처리기의 맥락에는 '기본 IIdentity
가'없다.
는 ASP.Net 처리기의 기본 User
인 GenericPrincipal
에 전달하는 GenericIdentity
있다, 그것은 행동이 비어 있지 않은 이름으로 인스턴스화하는 경우 다음이 인증이다입니다.
말했다
public virtual bool IsAuthenticated
{
get
{
return !this.m_name.Equals("");
}
}
는 IsAuthenticated는의 결정이 완전히 임의 및
IIdentity
를 구현하는 클래스는이 논리를 구현하기위한 완전히 책임이있다.
일반적으로, 이것은 asp.net 런타임에 의해 자동으로 수행 될 때, 따라서 true
가 적절한해야한다 반환 IsAuthenticated
는 '바보'와 함께 사용자 정의 IIdentity
을 구현, 미 인증 주체/정체성의 인스턴스에 대한 사용 사례가 없다 대부분의 경우. 또한
, 완전히
IPrincipal
및
IIdentity
이 사소한 구현하는 동안, 당신은 단순히 당신이 유지 보수하는 데 필요한 코드의 양을 감소
GenericPrincipal
및
GenericIdentity
에서 파생 할 수있다.
FormsAuthentication
의 맥락에서
사용자가 인증되는 경우에만 티켓이되고
User
유형
FormsIdentity
의 신원과
RolePrincipal
의 인스턴스가 될 것이며,이
IsAuthenticated
의 구현이다는 ... ;-)
매우 복잡
public bool IsAuthenticated
{
get
{
return true;
}
}
희망을 정리하는 데 도움이됩니다.
GenericIdentity에서 파생시키는 것이 좋습니다. 이 답변을 쓸 시간을내어 주셔서 감사합니다. – Pickels
@Pickels - FormsAuthentication과 함께 사용자 지정 주체/ID를 사용할 계획이라면 RolePrincipal 및 FormsIdentity에서 파생 될 가능성을 조사 할 수 있습니다. 기본 제공되는 모든 기본 제공 업체가 이에 해당합니다. 물론 자신의 공급자 스택을 구현하지 않는 한 모든 베팅이 해제되며 원하는대로 자유롭게 수행 할 수 있습니다. –
나는 생각하는 모든 공급자를 사용하지 않을 것이다. 나는 그것을 OpenID와 함께 사용하고 MongoDB 안에 저장하려고한다. IIdentity를 사용하여 몇 가지 테스트를 수행하여 일부 사용자 정보 (친숙한 식별자, ObjectId, 전자 메일 등)에 쉽게 액세스했습니다. – Pickels