我有一个没有身份的MVC项目(自定义身份验证)。但后来我想对它实施Google和Facebook身份验证。
我创建了一个项目,以了解微软如何在MVC身份验证中做到这一点。我能够实现它的一部分。现在我有一个调用google身份验证页面的按钮,当我选择我的电子邮件登录时出现错误 - 错误:redirect_uri_mismatch - 但我强制URL与我的URL匹配,这有效。
Google能够在帐户控制器中调用我的操作,但是在查看我复制的MVC基本代码时,我无法检索有关用户的信息。
这是我在loginInfo
中返回null的方法 public async Task<ActionResult> LoginWithGoogle(string returnUrl)
{
var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();
这是AuthenticationManager
private IAuthenticationManager AuthenticationManager
{
get
{
return HttpContext.GetOwinContext().Authentication;
}
}
如何从Google身份验证中获取信息?我可以通过javascript完成此操作,但我想如何只使用C#。
提前致谢。
答案 0 :(得分:1)
我最近创建了自定义Google登录项目。我使用声明来存储用户详细信息,但您可以使用自定义逻辑。
请在GitHub上找到它。这是详细的步骤。
https://github.com/kishancool11/GoogleLoginMVC
您可以使用LoginWithGoogle代替GoogleLoginCallback。