我是ASP.Net MVC 5的新手,并使用内置身份来构建一个简单的ASP.net网站。而且我对C#也很陌生。
我已成功为OAuth2设置配置了我的Google帐户,并且可以成功登录到我的Google帐户。登录信息存储在“ ASPNetUserLogins”表中。
现在,我将无法获取“ ProviderKey”,以便使用Google API在我的GCP(谷歌云平台)中列出我的项目。
public ActionResult Index()
{
if (User.Identity.IsAuthenticated)
{
var providerKey = GetProviderkey(User.Identity.GetUserId());
// do some logic later.
}
return View();
}
private string GetProviderkey(string UserID)
{
var _userManager = HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();
var user = _userManager.GetLogins(UserID);
var providerKey = "";
if (user != null)
{
var info = user.SingleOrDefault(u => u.Equals(user));
providerKey = info.ProviderKey;
}
return providerKey;
}
我得到了错误,我的变量“ info”为空。感谢您的帮助。
答案 0 :(得分:0)
啊,好的..就解决了。 ;)
private string GetProviderkey(string UserID)
{
var _userManager = HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();
var user = _userManager.FindById(UserID);
var providerKey = "";
if (user != null)
{
var info = user.Logins.SingleOrDefault(u => u.UserId == UserID);
providerKey = info.ProviderKey;
}
return providerKey;
}