加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 如何在OWIN OAuth .NET中获取UserID

发布时间:2020-12-16 09:11:59 所属栏目:asp.Net 来源:网络整理
导读:我正在关注本文以实现OAuth身份验证: http://www.asp.net/mvc/tutorials/mvc-5/create-an-aspnet-mvc-5-app-with-facebook-and-google-oauth2-and-openid-sign-on 您可以找到ExternalLoginCallback控制器的操作. 在该操作中执行以下方法: ExternalLoginInf
我正在关注本文以实现OAuth身份验证:
http://www.asp.net/mvc/tutorials/mvc-5/create-an-aspnet-mvc-5-app-with-facebook-and-google-oauth2-and-openid-sign-on

您可以找到ExternalLoginCallback控制器的操作.
在该操作中执行以下方法:

ExternalLoginInfo loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();

loginInfo有Login属性. Login属性具有LoginProvider和ProviderKey属性.

有谁知道它是什么ProviderKey属性?是注册到提供商的唯一UserID吗?

谢谢

解决方法

尝试User.Identity.GetUserId()方法.

if (loginInfo == null)
{
    return View("ExternalLoginFailure");
}

var userId = User.Identity.GetUserId();

有关更多信息,请参阅Get more information from Social providers used in the VS 2013 project templates帖子.

更新:获取用户的另一种方式是:

var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();
if (loginInfo == null)
{
    return RedirectToAction("Login");
}

var user = await UserManager.FindAsync(loginInfo.Login);
if (user != null)
{
    await SignInAsync(user,isPersistent: false);
    return RedirectToLocal(returnUrl);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读