2012-12-21 2 views
14

로그인 한 사용자의 UserId를 얻으려면 어떻게해야합니까? 나는 AccountModel을 생성 한 표준 시스템을 사용하고있다.로그인 한 사용자의 ID 가져 오기

User.Identity.Name 

사용자 이름을 표시 할 수 있지만 UserId 필드가 표시되지 않습니다. UserId를 다른 테이블의 외래 키로 사용하려고합니다.

+2

간단한 회원입니까? ASP.NET 멤버십? –

+0

간단한 회원 – naveed

답변

14

나는 당신이 WebSecurty 클래스를

var memberId = WebSecurity.GetUserId(User.Identity.Name); 

를 사용하는 ProviderUserKey - Gets the user identifier from the membership data source for the user.

object id = Membership.GetUser().ProviderUserKey 

Membership.GetUser() - Gets the information from the data source and updates the last-activity date/time stamp for the current logged-on membership user.

+0

흠, 내가 갖는 : 오류 'System.Web.Security.MembershipUser은'이 오타, 그것은'Membership'로 생각했다, '인 getUser' – naveed

+0

감사에 대한 정의가 포함되어 있지 않습니다. –

+0

좋습니다. 감사! – naveed

9

그렇게 할 수있는 가장 좋은 방법입니다 찾고 생각하고 추가하는 것을 잊지 마세요 컨트롤러 상단에 [InitializeSimpleMembership] :)

+0

이 방법도 효과가 있습니다. 감사합니다. – naveed

+0

공급자가 고유 식별자로 'int'를 사용하기위한 요구 사항을 따르는 한. 덕분에 –

+0

. 그것은 도움이되었다 :) –

19

이 시도 :

using Microsoft.AspNet.Identity; 
User.Identity.GetUserId(); 

그 얼마나 현재의 MVC (MVC5/EF6/VS2013) 템플릿에 대한 부분적인 전망에서 수행.

Aviatrix의 답변을 많이 보았으므로 틀린 부분을 수정하십시오.하지만 데이터베이스에 둘 이상의 사용자가 동일한 이름을 가진 경우 어떻게됩니까?

+0

그것은 나를 위해 너무 일한다! +1 – Bojangles

+0

사용자가 이미 로그인하여 현재 암호를 변경하려고하면이 해결책을 사용할 수 없습니다. – usefulBee