Boj*_*jan 1 c# asp.net-mvc dapper asp.net-identity asp.net-core-mvc
我通过以下方式通过第三方(例如Google)登录用户:
var info = await _signInManager.GetExternalLoginInfoAsync();
var result = await _signInManager.ExternalLoginSignInAsync(info.LoginProvider, info.ProviderKey, false);
Run Code Online (Sandbox Code Playgroud)
上面的内容由于存在而应该成功,如何捕获登录用户的userId?userId是位于我的数据库中Users表上的userId,它不会来自第三方登录提供程序。
这可能吗?我现在似乎找不到任何可以让我检索它的函数或对象。我以为可能是从User Object中获取的,但是据我的理解,它来自HttpContext,在此时,该用户将不会具有已登录的用户身份,至少直到刷新页面后才如此。我也想避免仅出于此目的重定向到另一个页面。
注意:我正在使用Dapper,并且在我的项目中没有EF的痕迹。不知道这有多重要。
var user = await UserManager.FindByLoginAsync(loginProvider, providerKey);
Run Code Online (Sandbox Code Playgroud)
因此,您可以执行以下操作:
var info = await _signInManager.GetExternalLoginInfoAsync();
var result = await _signInManager.ExternalLoginSignInAsync(info.LoginProvider, info.ProviderKey, false);
if (result = IdentityResult.Success)
{
var user = await _userManager.FindByLoginAsync(info.LoginProvider, info.ProviderKey);
}
Run Code Online (Sandbox Code Playgroud)
永远记住,ASP.NET Core是开源的,因此大多数情况下最快的就是查看默认实现。
| 归档时间: |
|
| 查看次数: |
407 次 |
| 最近记录: |