我正在尝试处理一个场景,当我正在验证的OpenID Connect服务器返回一组特定的查询字符串时.当条件匹配时,我想基本上将用户重定向到“拒绝访问”页面.无论出于何种原因,下面包含重定向的注释行实际上都不会触发.有没有更好/不同的方式去做我想要的事情?
以下是在Startup.cs中配置OpenID Connect中间件的方法:
services.Configure<OpenIdConnectOptions>(options => { // ... options.Events = new OpenIdConnectEvents { OnMessageReceived = context => { if (context.HttpContext.Request.Query.ContainsKey("error")) { context.HandleResponse(); // <-- Fires context.Response.Redirect("/AccessDenied"); // <-- Redirect fires but user is not redirected } return Task.Fromresult(0); } } }
更新:使用以下调整:
options.Events = new OpenIdConnectEvents { OnRemoteFailure = context => { context.HandleResponse(); context.Response.Redirect("AccessDenied?error=" + context.Failure.Message); return Task.Fromresult(0); },// ... };
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。