我正在尝试将 OAuth 注册/登录集成到我的 ASP.NET MVC 4 站点中。不过,我在登录后无法获取用户的 ID 和/或用户名。对于登录,我有:
AuthenticationResult result = OAuthWebSecurity.VerifyAuthentication(Url.Action("ExternalLoginCallback", new { ReturnUrl = returnUrl }));
if(result.IsSuccessful)
{
if(OAuthWebSecurity.Login(result.Provider, result.ProviderUserId, createPersistentCookie: false))
{
string username = User.Identity.Name;
int userID = WebSecurity.CurrentUserId;
}
}
虽然 OAuthWebSecurity.Login 成功(返回 true),但 username 设置为空字符串,userID 设置为 -1(这意味着没有人登录)。任何人都可以帮助解释登录函数返回 true 之间的这种差异,但是这两种确定当前用户的方法另有说明吗?或者也许向我展示一种在 OAuth 登录后查找 UserId(对应于 UserProfile 表)的方法?
此登录结构主要来自启动 MVC 4 互联网应用程序时给出的默认会员代码。