asp.net - 对于使用 OpenIdConnect 身份验证的 WebForms 客户端,LogoutUri 应该是什么?

标签 asp.net webforms openid-connect identityserver4

我有一个 IdentityServer4 提供程序,我正在尝试使用 OIDC 身份验证将 ASP.NET WebForms 客户端连接到它。一切都很好,只是我不知道 LogoutUri 应该是什么。我尝试过 /signout-oidc/signout-callback-oidc 但似乎都不存在,它们都返回 404 错误(有趣的是 /signin-oidc 确实存在)。我应该添加SignoutCleanup .aspx 逻辑并使用该页面作为 LogoutUri 来代替?

这是客户端和 OIDC 配置:

{
                ClientId = "client.webforms",
                ClientName = "WebForms Client",
                AllowedGrantTypes = GrantTypes.Hybrid,
                AllowAccessTokensViaBrowser = false,

                RedirectUris = { "http://localhost:9869/signin-oidc" },
                PostLogoutRedirectUris = { "http://localhost:9869/" },
                LogoutUri = "http://localhost:9869/signout-callback-oidc",

                AllowedScopes =
                    {
                        IdentityServerConstants.StandardScopes.OpenId,
                        "test_scope"
                    },
                AllowOfflineAccess = false,
                RequireConsent = false,

                AlwaysIncludeUserClaimsInIdToken = true
            });

...

 app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
                    {
                        AuthenticationType = "oidc",
                        SignInAsAuthenticationType = "Cookies",
                        Authority = "http://localhost:3027/",
                        ClientId = "client.webforms",
                        RedirectUri = "http://localhost:9869/signin-oidc",
                        PostLogoutRedirectUri = "http://localhost:9869/",
                        ResponseType = "id_token code",
                        Scope = "openid test_scope",
                        UseTokenLifetime = false,
                        ... (events)

最佳答案

Katana/WebForms 没有注销端点的内置实现。

在 Controller 上创建一个清理操作(例如删除 authN cookie) - 并使用该地址作为注销 URI。

IdentityServer 会将 sid 声明的值传递到注销端点 - 您应该将其与登录时获得的 sid 声明进行比较,以避免注销垃圾邮件。

关于asp.net - 对于使用 OpenIdConnect 身份验证的 WebForms 客户端,LogoutUri 应该是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43139669/

相关文章:

asp.net - 在 WebForms 中调试时关闭 bundle/缩小

keycloak - 如何配置 Keycloak 以与 Guacamole 的 OpenID 插件一起使用?

security - OpenID Connect 服务器流中的 "state"参数可以防止什么攻击?

c# - 安全的跨域表单提交

c# - 如何在单击按钮时检查 gridview 列中复选框的状态

asp.net-core - 使用 AD B2C 时如何添加 OnTokenValidated 事件处理程序?

c# - 用于制表符丢失焦点事件的 Javascript

asp.net - 为什么文本在复选框下方移动而不是在复选框旁边移动 1 行?

Javascript 警报无法从代码隐藏中运行

javascript - 当 Label.text 无法处理大小(内存不足)时,如何在 asp.net 中附加大 Html 字符串