如何在Asp.Net Web API 2中使用Owin OAuth2修改令牌端点响应主体
我想从令牌端点响应修改响应主体.
我试图用MessageHandler拦截/ Token请求,但它不起作用. 我可以通过覆盖OAuthAuthorizationServerProvider.TokenEndpoint方法为响应添加一些额外的信息,但是我无法创建自己的响应主体. 有没有办法拦截/ Token请求? 编辑 我发现了如何从令牌端点响应中删除响应主体内容,如下所示:HttpContext.Current.Response.SuppressContent = true; 这似乎是实现我的目标的正确方法,但现在当我使用context.AdditionalResponseParameters.Add()方法添加我的自定义信息时,SuppressContent阻止任何改动. 现在我有这样的事情: // Removing the body from the token endpoint response HttpContext.Current.Response.SuppressContent = true; // Add custom informations context.AdditionalResponseParameters.Add("a","test"); 解决方法
要简单地向JSON令牌响应添加新项,您可以使用TokenEndpointResponse而不是TokenEndpoint通知.
如果您正在寻找一种方法来完全替换由您自己的OAuth2授权服务器准备的令牌响应,那么很遗憾没有简单的方法可以做到这一点,因为OAuthAuthorizationServerHandler.InvokeTokenEndpointAsync在调用TokenEndpointResponse后不会检查OAuthTokenEndpointContext.IsRequestCompleted属性通知. https://github.com/aspnet/AspNetKatana/blob/dev/src/Microsoft.Owin.Security.OAuth/OAuthAuthorizationServerHandler.cs 这是一个已知的问题,但是当我建议解决它时,将它包含在Katana 3中为时已晚. 你应该试试Owin.Security.OpenIdConnect.Server:它是我用@manfredsteyer开发的OAuthAuthorizationServerMiddleware的(实验性)分支. https://github.com/aspnet-contrib/AspNet.Security.OpenIdConnect.Server/tree/dev 当然,它包括正确的检查以允许绕过默认令牌请求处理(这甚至是我在分叉时修复的第一件事). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-4 – 我应该如何使用ReturnUrl = ViewBag.Retu
- asp.net-mvc – 如何允许用户在ASP.NET MVC中创建永久链接?
- iis-7 – 如何在IIS经典模式池下托管ASP.NET 5(vNext)MVC 6
- entity-framework – 在mvc中使用控制器中的模型类是不好的
- ASP.NET ASCX使用实例变量
- ASP.NET MVC/C++#:我可以避免在单行C#条件语句中重复自己吗
- asp.net – 中继器中继器
- asp.net-mvc – 显示主键是一种危险
- asp.net-mvc-3 – 从ASP MVC 3 Preview更新到Beta后,提交了
- entity-framework – 数据读取器与指定的模型不兼容
- asp.net-web-api – 在身份验证过滤器中的Challe
- asp.net-mvc – asp.net mvc如何正确测试控制器
- asp.net – 在IIS中将WebAPI添加为子/嵌套应用程
- asp.net-mvc – 授权标签如何工作? – Asp.net
- asp.net 汉字转换拼音及首字母实现代码
- asp.net – 在测试期间如何使电子邮件到本地文件
- asp.net-mvc-3 – 将复选框绑定到MVC中的int数组
- asp.net-mvc – 如何将POST请求重定向到维护MVC中
- asp.net – 我们如何在转发器内组合单选按钮?
- asp.net – 在POST时丢失HTML表单数据