在ASP.NET WebApi中更改HTTP响应

时间:2015-02-25 07:39:36

标签: c# asp.net-web-api oauth owin access-token

我正在尝试使用ASP.NET WebApi实现用于发布Web令牌的服务器。我已经找到了关于如何一步一步地完成这项工作的精彩教程,并且一切正常,除了我需要在HTTP响应中更改一些值。

这是一张调用用户凭据的调用图片,如果用户存在于数据库中,则获取令牌,如果他没有获得HTTP 401错误。

enter image description here

这里也是响应体的更近的图片,因为它在之前的图片上太小了:

enter image description here

我的问题是:是否有机会将返回的JSON中的access_token属性名称更改为auth_token。我需要使用不同的名称,因为稍后在项目中我将再有一个令牌,它的名称也必须是access_token。 我的第二个问题是:我可以更改.issued和.expires属性的日期格式吗?例如yyyy-MM-dd?

我已经使用了这个教程http://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity/

所以代码完全相同。我试图用调试器跟踪响应的创建,但我没有明确的愿景。我想它是在SimpleAuthorizationServerProvider类中,但是我无法在项目的任何地方找到这个属性的显式设置,所以我想这个响应会自动生成。

1 个答案:

答案 0 :(得分:1)

虽然更改标准令牌响应参数的名称或格式绝对不是一个好主意,但无论如何,这是一种方法:https://stackoverflow.com/a/28683971/542757

基本上,您必须使用TokenEndpointResponse通知并提供自己的JSON有效负载。遗憾的是,有一个错误阻止它使用Katana 3中内置的OAuth2授权服务器。你可以看看我用@manfredsteyer开发的一个fork;它包含一个允许这种情况的修复程序:https://github.com/aspnet-contrib/AspNet.Security.OpenIdConnect.Server/tree/dev