ASP.NET Core 2 AuthenticationSchemes

时间:2017-09-14 15:45:54

标签: c# authentication asp.net-core .net-core identityserver4

有几种身份验证方案,但我找不到任何关于它们的文档。他们有什么不同?

options.DefaultScheme
options.DefaultChallengeScheme
options.DefaultForbidScheme
options.DefaultAuthenticateScheme
options.DefaultSignInScheme
options.DefaultSignOutScheme

1 个答案:

答案 0 :(得分:7)

来自here

  • DefaultScheme :如果指定,则所有其他默认值将回退到 这个值
  • DefaultAuthenticateScheme :如果已指定, AuthenticateAsync()将使用此方案,以及 UseAuthentication()添加的AuthenticationMiddleware将使用它 scheme自动设置context.User。 (对应于 AutomaticAuthentication)
  • DefaultChallengeScheme ,如果指定, ChallengeAsync()将使用此方案,[Authorize]使用策略 不指定方案也将使用此
  • 使用DefaultSignInScheme 通过SignInAsync()以及所有远程身份验证方案 Google / Facebook / OIDC / OAuth,通常会将其设置为Cookie。
  • SignOutAsync()使用
  • DefaultSignOutScheme 回退到DefaultSignInScheme
  • ForbidAsync()使用
  • DefaultForbidScheme , 回到DefaultChallengeScheme

因此,您指定authentication scheme将在IAuthenticationService

中的相应方法中使用