2017-09-14 184 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