社交登录后更新凭证

时间:2019-04-26 18:01:48

标签: c# asp.net-core asp.net-core-2.1

我让我的用户使用github和facebook之类的不同社交登录名登录。

我的问题是,当他们在系统中创建了不同类型的实体时,我需要向他们分配对新实体的权限。

我已经为此使用了声明:

  1. 使用更新的声明创建新的身份/主意
  2. 注销当前的身份验证方案
  3. 使用CookieAuthentication登录

代码:

var currentScheme = User.Claims.First(x => x.Type == ClaimTypes.AuthenticationMethod);
var principal = await _principalService.CreateAppPrincipal(User.GetUserId());
await HttpContext.SignOutAsync(currentScheme.Value);
await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal);

在我更新到asp.net core 2.1之前,一切都很好。

现在出现以下错误:

  

为方案“ Facebook”注册的身份验证处理程序为“ FacebookHandler”,不能用于SignOutAsync。已注册的注销方案为:Identity.Application,Identity.External,Identity.TwoFactorRememberMe,Identity.TwoFactorUserId,Cookie。'

当前声明(更新前):

enter image description here

那是为什么?为什么用户使用社交登录名后不能注销?

0 个答案:

没有答案