我在 IdentityServer 4 中的注销功能遇到了麻烦。我的 IS4 应用程序主要是他们网站上教程的结果,所以他们并不是真正的自定义行为。我也使用 ASP.net Core Identity。我有一个 MVC 客户端(同样,基本上是项目模板)。我刚刚在索引页面的顶部添加了一个“注销”按钮,以便将当前经过身份验证的用户注销。
这是我的 MVC 客户端中的注销方法:
public async Task Logout()
{
await HttpContext.SignOutAsync("Cookies");
await HttpContext.SignOutAsync("oidc");
}
Run Code Online (Sandbox Code Playgroud)
这正是教程所说的。
这是 MVC Client 的 Startup.cs 中的配置:
services.AddAuthentication(options =>
{
options.DefaultScheme = "Cookies";
options.DefaultChallengeScheme = "oidc";
})
.AddCookie("Cookies")
.AddOpenIdConnect("oidc", options =>
{
options.SignInScheme = "Cookies";
options.Authority = "http://localhost:5000";
options.RequireHttpsMetadata = false;
options.CallbackPath = new PathString("/Home/");
options.ClientId = "Core.WebUI";
options.ClientSecret = "secret";
options.ResponseType = "code id_token";
options.SaveTokens = true;
options.GetClaimsFromUserInfoEndpoint = true;
options.Scope.Add("offline_access");
});
Run Code Online (Sandbox Code Playgroud)
没什么特别的……现在 IS4 应用程序中的 …