2014-03-25 6 views
64

새로운 2.0 버전의 ID 프레임 워크로 전환했습니다. 1.0에서는 manager.FindByIdAsync(User.Identity.GetUserId())을 사용하여 사용자 개체를 얻을 수있었습니다. GetUserId() 메서드가 2.0에없는 것 같습니다.ASP.NET ID 2.0의 현재 사용자 ID 얻기

이제 내가 알아낼 수있는 것은 사용자 테이블의 사용자 이름 필드를 참조하는 manager.FindByEmailAsync(User.Identity.Name)을 사용하는 것입니다. 내 응용 프로그램에서는 전자 메일 필드와 동일하게 설정됩니다.

누군가가 이메일을 업데이트해야 할 때 문제가 발생하는 것을 알 수 있습니다. 현재 로그인 한 사용자 객체를 얻는 방법이 있습니까? (예 : id 필드) Identity 2.0 Framework에서?

+0

가 어떻게 사용자 아이디셨어요입니다 , 나에게 알려줘, 나도 같은 문제로 달리고있다. –

답변

80

GetUserId()IIdentity의 확장 방법이며 Microsoft.AspNet.Identity.IdentityExtensions입니다. 네임 스페이스에 using Microsoft.AspNet.Identity;을 추가했는지 확인하십시오.

C 번호 :

using Microsoft.AspNet.Identity; 

VB.NET :

Imports Microsoft.AspNet.Identity 


처음 수입 Microsoft.AspNet.Identity에서 Asp.net 정체성 2.0 CurrentUserId을 얻기 위하여

+0

참조 : http://stackoverflow.com/questions/20925822/asp-mvc5-identity-how-to-current-applicationuser –

+1

ID 2에서 작동하지 않는 것 같습니다. 제안 사항은 –

+2

이어야합니다. . 내 Identity 2 프로젝트에서 GetUserId()를 사용하고 있습니다. –

49

그런 다음으로 전화하십시오. 0 어디서나 당신이 원하는 :

strCurrentUserId = User.Identity.GetUserId() 

이 방법은 데이터베이스의 사용자 ID에 대한 정의 데이터 유형 (기본값은 String이다)와 같은 현재 사용자 ID를 반환합니다.

+0

어디에서 확인할 수 있습니까? Microsoft.AspNet.Identity 네임 스페이스에 해당하는 DLL을 찾았습니까? – Franziee

9

그냥 경우에 당신은 저와 사용자 엔티티의 아이디 필드처럼 int로 또는 문자열이 아닌 뭔가 다른,

using Microsoft.AspNet.Identity; 

int userId = User.Identity.GetUserId<int>(); 

트릭을 할 것입니다

관련 문제