且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

通过OAuth登录用户后,我无法获得用户ID的MVC

更新时间:2023-12-04 11:27:04

我假设您正在尝试在控制器中获取userID.您是否尝试过:

I assume you're trying to get the userID in in a controller. Have you tried:

int currentUserId = (int) Membership.GetUser().ProviderUserKey;

我无法告诉您这是否适用于Facebook,但适用于Google Auth.对我来说.

I can't tell you if this works with Facebook or not, but it works with Google Auth. for me.

如果您使用的不是AccountController,则还应该在控制器类的顶部添加 [InitializeSimpleMembership] .

You should also add [InitializeSimpleMembership] on top of controller class if you use another controller than AccountController.

检查此内容:在新的MVC4应用程序中获取UserId(int)

检查此方法

Check this method int GetUserIdFromOAuth(string provider, string providerUserId) and try something like:

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

另外,这个问题的人:

OAuth和SimpleMembership-如何从中检索ProviderUserIdwebpages_OAuthMembership表

抱怨与您的问题相反:他想要ProviderUserKey,但一直获取UserID.

is complaining about the opposite of your problem: he wants the ProviderUserKey but keeps getting the UserID instead.