Tom*_*han 3 asp.net oauth-2.0 asp.net-identity asp.net-core
在ASP.NET Core和OAuth中的ASP.NET身份的上下文中,我在登录回调中有以下代码段:
var info = await _signInManager.GetExternalLoginInfoAsync();
if (info == null)
{
return RedirectToAction(nameof(Login));
}
var result = await _signInManager.ExternalLoginSignInAsync(
info.LoginProvider,
info.ProviderKey,
isPersistent: true);
if (result.Succeeded)
{
// ...
Run Code Online (Sandbox Code Playgroud)
由于某种原因,我无法确定,即使我确实正确登录外部提供程序,也result总是返回状态Failed(显然,因为刷新外部页面突然显示我已登录).
我有不同之处在于登录尝试失败的唯一信息是,它是不是任何的因IsLockedOut,RequiresTwoFactor或者IsNotAllowed,因为这些标志也false将上result对象.
如何获取有关出错的更多信息?
更新:
根据@Dmitry的建议,我已经启用了非常积极的日志记录,但我仍然找不到任何有价值的东西.我在成功获取info和后续失败登录尝试之间的日志中获得的唯一内容是来自我的db上下文:
2017-07-04T22:45:14.2847287 + 02:00 0HL633KNRMVO7 [INF]执行DbCommand(1ms)[Parameters = [@__ get_Item_0 ='?' (大小= 450),@__ get_Item_1 ='?' (Size = 450)],CommandType ='Text',CommandTimeout = '30'] SELECT TOP(1)[e].[LoginProvider],[e].[ProviderKey],[e].[ProviderDisplayName],[e ].[UserId] FROM [AspNetUserLogins] AS [e] WHERE([e].[LoginProvider] = @__ get_Item_0)AND([e].[ProviderKey] = @__ get_Item_1)(6438bdd5)
在MSSQL Management Studio中执行该操作我得到一个空的结果集,我怀疑这可能是一个问题,但我不知道为什么,或者如何解决它.任何帮助深表感谢.
您缺少对UserManager.AddLoginAsync(https://msdn.microsoft.com/en-us/library/dn497534(v=vs.108).aspx)的调用,该调用将填充该AspNetUserLogins表.
| 归档时间: |
|
| 查看次数: |
1986 次 |
| 最近记录: |