2014-08-29 3 views
1

일반 Authorize 특성과 함께 ASP.Net ID 2 공급자 모델을 사용합니다.ASP.Net Identity 2, HttpRequestBase.LogonUserIdentity

익명 액세스는 true이고 Windows 인증은 사용할 수 없습니다.

HttpRequestBase.IsAuthenticated이 실제로는 ClaimsIdentity이 아니고 대신 가장 된 사용자 (로컬로 IIS Express를 실행하는 경우)를 반환합니다. 실제로는 HttpRequestBase.LogonUserIdentity이 반환합니다.

제공자로부터 실제로 인증되고 반송 된 ClaimsIdentity에 액세스 할 수 있습니다.

HttpContext.Current.User... 및/또는 System.Threading.Thread.CurrentPrincipal...

Q : 왜 HttpRequestBase.LogonUserIdentity 통해?

답변

0

처음으로이 속성이 사용 된 것으로 나타났습니다. documentation은이 속성이 현재 사용자의 WindowsIdentity을 반환해야한다고 말합니다. MVC 앱은 로그인 한 사용자의 WindowsIdentity을 알지 못합니다.

또한이 속성의 source codeeventually은 서버 변수를 요청합니다.

나는 보통 ClaimsPrincipal.Current을 통해 현재 로그인 한 사용자에게 액세스하며 사용자는 HttpRequestBase.LogonUserIdentity에서 검색되지 않습니다.
또한 HttpRequestBase.IsAuthenticated은 을 호출하고 거의 null 확인을하지 않고 identical입니다.

+0

'LogonUserIdentity'라는 이름이 "Loged on users identity"라는 것을 의미한다고 생각하면 – Daniel

+0

! 'IdentityUser.LockoutEnabled'는 현재 잠겨있는 사용자를위한 플래그가 아닙니다. 이름 지정이 어렵고 문제가 발생합니다. – trailmax

관련 문제