Asp.net core identity Server 4备用注销重定向uri

Asp.net core identity Server 4备用注销重定向uri,asp.net-core,identityserver4,Asp.net Core,Identityserver4,我们使用Identity Server 4保护web应用程序和API。这部分流程正在运行,用户可以登录并访问应用程序的各个部分。我遇到的问题是在注销过程中,出于以下两个原因之一,我需要向Identity Server传递一个值。注销发生的原因可能是用户单击了注销按钮(默认流程),也可能是用户在X分钟内处于非活动状态(自定义流程) 我花了大量时间阅读和查看Identity Server 4文档,虽然他们指出这是可能的,但似乎没有一个示例。我已尝试在Identity Server 4注销期间搜索如何

我们使用Identity Server 4保护web应用程序和API。这部分流程正在运行,用户可以登录并访问应用程序的各个部分。我遇到的问题是在注销过程中,出于以下两个原因之一,我需要向Identity Server传递一个值。注销发生的原因可能是用户单击了注销按钮(默认流程),也可能是用户在X分钟内处于非活动状态(自定义流程)

我花了大量时间阅读和查看Identity Server 4文档,虽然他们指出这是可能的,但似乎没有一个示例。我已尝试在Identity Server 4注销期间搜索如何传递/发送值,但未能找到答案。许多结果都谈到在AuthenticationProperties对象上设置RedirectUri,并将其添加到
HttpContext.SignOutAsync()
方法中。我已经这样做了,并且没有看到LogoutContext的PostLogoutRedirectUri更改。我已确保已将url的两个版本(默认和自定义进程)添加到重定向URI的客户机列表中

有人能指出我在做什么吗

更新:

我们将ASP.NET MVC Core 2.1用于客户端,Identity Server 4 v2.3.2用于授权

注销和撤销令牌与HttpContext.SignOutAsync()一样有效-问题是在客户端上有两个选项,用户可以单击注销按钮启动注销操作,或者脚本启动注销操作并发送值。我需要能够执行正常的注销过程,并根据注销的启动方式显示2条不同消息中的1条

更新2:

因为我已经发布了这篇文章,我已经用一个干净的项目做了一些工作-我现在知道
LocalRedirect()
对我来说不起作用,因为主机在授权和客户端之间是不同的。i、 e:客户,授权人:

权威

 public async Task Logout(string logoutid)
        {

            var logoutContext = _interaction.GetLogoutContextAsync(logoutid);
            var postLogOutRedirectUri = logoutContext.Result.PostLogoutRedirectUri;


            await _signInManager.SignOutAsync();


            LocalRedirect(postLogOutRedirectUri);

        }
MVC客户端

public async Task Logout(string value = null)
        {
            await HttpContext.SignOutAsync("Cookies");

            //custom logout process
            if (!string.IsNullOrWhiteSpace(value))
            {

                var authProperties = new AuthenticationProperties()
                {
                    RedirectUri = $"{_config["IdentityServer:MvcClient"]}/{RedirectToAction().UrlHelper.Action("Idle", "Home")}"
                };

                await HttpContext.SignOutAsync("oidc", authProperties);

                return;
            }

            //default logout process
            await HttpContext.SignOutAsync("oidc");
        }

您需要指定正在使用的平台(MVC、RazorPages、Angular/WebAPI等),以便社区能够帮助您。之后,尝试详细说明您希望如何处理会话到期/注销信息,因为可能有其他方法可以帮助您解决问题。祝你好运据我所知,对于注销,您只需要撤销您的令牌,如果您使用的是JWT令牌,那么只需撤销刷新令牌,如果您的访问令牌的生命周期很短,则没有问题。如果您使用引用令牌,您需要在注销时撤销这两个令牌。您需要指定正在使用的平台(MVC、RazorPages、Angular/WebAPI等),以便社区能够帮助您。之后,尝试详细说明您希望如何处理会话到期/注销信息,因为可能有其他方法可以帮助您解决问题。祝你好运据我所知,对于注销,您只需要撤销您的令牌,如果您使用的是JWT令牌,那么只需撤销刷新令牌,如果您的访问令牌的生命周期很短,则没有问题。如果使用引用令牌,则需要在注销时撤销这两个令牌。