Luc*_*caV 9 openid authentication asp.net-core
我目前正在努力使用 Asp.net core 2 应用程序,该应用程序使用两个 openid 提供程序进行身份验证,映射到两个不同的身份验证方案(具有不同的名称)。
我面临的问题是试图注销当前正在使用的特定方案。例如,如果我同时支持 Google 和 Facebook 身份验证,则需要了解当前使用的是哪种方案,并调用SignOut指示正确方案的方法。这允许我清除本地 cookie,并将用户重定向到外部身份提供者并注销。
问题是我无法找到一种GetCurrentScheme()函数,以便我可以使用然后在方法中指定方案SignOut。我确定我错过了一些基本的东西......
似乎没有任何直接的方法可以找到当前的方案。这是一个粗略的方法:
private readonly IAuthenticationSchemeProvider authenticationSchemeProvider;
...
foreach(var scheme in authenticationSchemeProvider.GetRequestHandlerSchemesAsync()){
var authResult = await context.AuthenticateAsync(scheme.Name);
if(authResult.Succeeded)
// this is the scheme that was used for authentication
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3234 次 |
| 最近记录: |