我让我的用户使用github和facebook之类的不同社交登录名登录。
我的问题是,当他们在系统中创建了不同类型的实体时,我需要向他们分配对新实体的权限。
我已经为此使用了声明:
代码:
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。'
当前声明(更新前):
那是为什么?为什么用户使用社交登录名后不能注销?