【问题标题】:Change HTTP response in ASP.NET WebApi在 ASP.NET WebApi 中更改 HTTP 响应
【发布时间】:2015-04-27 03:06:37
【问题描述】:

我正在尝试使用 ASP.NET WebApi 实现用于发布 Web 令牌的服务器。我找到了关于如何一步一步执行此操作的很棒的教程,并且一切正常,除了我需要更改 HTTP 响应中的一些值。

这是检查用户凭据的调用图片,如果用户存在于数据库中,则获取令牌,如果不存在,则获取 HTTP 401 错误。

这里也是响应主体的更近的图片,因为它在上一张图片中太小了:

我的问题是:是否有机会将返回的 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 类中,但是我在项目的任何地方都找不到此属性的显式设置,所以我猜响应会自动创建。

【问题讨论】:

  • 我以前没有这样做过,但是您可以考虑在将响应发送给客户端之前对其进行转换?
  • @Intrepid 问题是我从来没有在 WebApi(或 WebApi)中使用过安全性,我不知道如何或在哪里这样做......:(
  • 所有信息都是由创建声明的东西创建的......所以寻找它。它将执行context.Validated。一切都是为了设置身份。
  • @CallumLinington 不,我不想在 JavaScript 中更改它,这根本没有用...我想知道如何在 WebApi 中更改它,然后再发送给客户端。 ..
  • 为什么要更改这些属性的名称?如果它们是 OAuth 的一部分,则它们应该具有这些特定的名称和格式。它们不是用来展示的

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-06
    • 1970-01-01
    • 2016-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多