ASP.NET 核心 2 身份验证方案
ASP.NET Core 2 AuthenticationSchemes
有几种身份验证方案,但我找不到关于它们的任何文档。它们有何不同?
options.DefaultScheme
options.DefaultChallengeScheme
options.DefaultForbidScheme
options.DefaultAuthenticateScheme
options.DefaultSignInScheme
options.DefaultSignOutScheme
来自here
- DefaultScheme:如果指定,所有其他默认值将回退到
这个值
- DefaultAuthenticateScheme:如果指定,
AuthenticateAsync() 将使用此方案,还有
UseAuthentication() 添加的 AuthenticationMiddleware 将使用这个
自动设置 context.User 的方案。 (对应于
自动身份验证)
- DefaultChallengeScheme 如果指定,
ChallengeAsync() 将使用此方案,[Authorize] 策略
不指定方案也会使用这个
使用 - DefaultSignInScheme
通过 SignInAsync() 以及所有远程身份验证方案,例如
Google/Facebook/OIDC/OAuth,通常这将设置为 cookie。
- DefaultSignOutScheme 由 SignOutAsync() 使用回退到 DefaultSignInScheme
- DefaultForbidScheme 被 ForbidAsync() 使用,
退回到 DefaultChallengeScheme
所以,你指定,在IAuthenticationService
中相应的方法中使用了哪个authentication scheme
有几种身份验证方案,但我找不到关于它们的任何文档。它们有何不同?
options.DefaultScheme
options.DefaultChallengeScheme
options.DefaultForbidScheme
options.DefaultAuthenticateScheme
options.DefaultSignInScheme
options.DefaultSignOutScheme
来自here
- DefaultScheme:如果指定,所有其他默认值将回退到 这个值
- DefaultAuthenticateScheme:如果指定, AuthenticateAsync() 将使用此方案,还有 UseAuthentication() 添加的 AuthenticationMiddleware 将使用这个 自动设置 context.User 的方案。 (对应于 自动身份验证)
- DefaultChallengeScheme 如果指定, ChallengeAsync() 将使用此方案,[Authorize] 策略 不指定方案也会使用这个 使用
- DefaultSignInScheme 通过 SignInAsync() 以及所有远程身份验证方案,例如 Google/Facebook/OIDC/OAuth,通常这将设置为 cookie。
- DefaultSignOutScheme 由 SignOutAsync() 使用回退到 DefaultSignInScheme
- DefaultForbidScheme 被 ForbidAsync() 使用, 退回到 DefaultChallengeScheme
所以,你指定,在IAuthenticationService