2013-11-29 2 views
2

MVC 4 simplemembership oAuth 제공 업체를 통해 Facebook 로그인을 구현하는 중입니다.MVC Simplemembership OAuth를 통해 사용자를 로그인 한 후에 userID를 가져올 수 없습니다.

사용자를 등록하고 서명하는 것이 효과적입니다. 그러나 oAth를 사용하여 사용자를 로그인 한 후에는 인증 된 사용자의 UserId를 가져올 수 없습니다. UserId가 membership_oauth 테이블에 있고 UserProfile 테이블의 UserId와 관련되어 있음을 알 수 있습니다.

일반적으로 WebSecurity.CurrentUserId를 사용하여 가져 오지만, OAuthWebSecurity를 ​​사용할 때이 방법을 사용할 수있는 것은 아닙니다. 내가 시도 할 때 WebSecurity.CurrentUserId "인스턴스가 인스턴스화되지 않았습니다."오류가 발생합니다.

아무도이 정보를 얻는 방법을 알고 있습니까?

많은 감사를드립니다!

답변

1

컨트롤러에서 userID를 가져 오려고한다고 가정합니다. 시도해 봤니?

Facebook에서 작동하는지 여부는 알 수 없지만 Google 인증과 작동하는지는 알 수 없습니다. 나를 위해.

AccountController 이외의 다른 컨트롤러를 사용하는 경우 컨트롤러 클래스 위에 [InitializeSimpleMembership]을 추가해야합니다.

확인이 : Get UserId (int) in new MVC4 application

편집 :

확인이 방법 int GetUserIdFromOAuth(string provider, string providerUserId)과 같은 시도 : 또한

SimpleMembershipProvider provider = (SimpleMembershipProvider) Membership.Provider; 
int id = provider.GetUserIdFromOAuth("you_know_the_provider", "you_can_get_the_provider_user_id") 

,이 문제의 사람 :

OAuth and SimpleMembership - how to retrieve ProviderUserId from webpages_OAuthMembership table

은 문제의 반대에 대해 불평하고 있습니다. 그는 ProviderUserKey를 원하지만 대신 UserID를 계속 가져옵니다.

+0

감사합니다. Membership.GetUser(). ProviderUserKey; facebook에서 제공 한 사용자 이름을 반환합니다, 나는 UserProfile 테이블에 membership_oauth 테이블을 연결하는 UserId를 얻으려고합니다. int입니다. –

+0

편집을 참조하십시오. 나는 그것이 도움이되기를 바랍니다. – user1987392