2017-09-14 186 views
2

有几种身份验证方案,但我找不到任何文档。他们有什么不同?ASP.NET Core 2 AuthenticationSchemes

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

您是否阅读过[本文](https://docs.microsoft.com/zh-cn/aspnet/core/security/authorization/limitingidentitybyscheme)? –

+0

我找不到任何有关主题的信息。 – Joffrey

回答

5

here

  • DefaultScheme:如果指定,所有其它的默认值将回退到 此值
  • DefaultAuthenticateScheme:如果指定, AuthenticateAsync()将使用此方案,并且由UseAuthentication()添加的AuthenticationMiddleware 将使用此 方案自动设置context.User。 (对应于 AutomaticAuthentication)
  • DefaultChallengeScheme如果指定, ChallengeAsync()将使用此方案,[授权]与政策 不指定方案也将使用此
  • DefaultSignInScheme被使用 SignInAsync()以及Google/Facebook/OIDC/OAuth等所有远程认证方案,例如 ,通常会将其设置为cookie。
  • DefaultSignOutScheme所使用的SignOutAsync()回落到DefaultSignInScheme
  • DefaultForbidScheme所使用的ForbidAsync(), 回落到DefaultChallengeScheme

所以,你指定,这authentication scheme,时便会在相应的方法中使用IAuthenticationService