我已经在快速入门中设置了一个MVC应用程序和IdentityServer。我还使用EFCore来保持配置和授权。
一切正常,甚至是Windows身份验证。
当我使用
从我的MVC应用程序注销时public async Task Logout()
{
await HttpContext.Authentication.SignOutAsync("Cookies");
await HttpContext.Authentication.SignOutAsync("oidc");
}
我已按预期退出。
但是当我再次登录时,请输入我的凭据并再次单击“登录”下一页请求许可授予。但为什么?我已经在第一次登录时设置了权限。我怎么能避免这种情况?
如果我尝试使用Windows身份验证来实现SSO,这可能非常烦人。
此问题是否意味着不会持久保存授权并从数据库中读取?
答案 0 :(得分:1)
在这里发现了同样的问题
IdentityServer4 not considering PersistedGrants store (user_consent in particular)
所以他已经开了一个问题https://github.com/IdentityServer/IdentityServer4/issues/928
答案 1 :(得分:1)
创建您的客户时,您可以使用RequireConsent标志关闭同意,您可以通过将AllowRememberConsent添加到true来记住它
new Client
{
ClientId = "client",
AllowRememberConsent = true
}
您可以看到文档here