asp.net - 身份验证后手动将属性添加到请求正文

标签 asp.net http rest asp.net-web-api asp.net-web-api2

我正在开发 ASP.NET Web API 2 应用程序。当包含用户身份验证凭据的 HTTP 请求进入时,在它到达定义的路由(我正在为其使用属性路由)之前,我想以某种方式添加一个过滤器,以便它可以对用户进行身份验证,并在身份验证成功后,我想从存储库中获取一个 ID 并将其添加到请求正文中。

是否可以在请求到达 Controller 的 Action 之前添加过滤器?更重要的是,是否可以在过滤器认证后向请求体添加一些值?

谢谢。

最佳答案

因为我不能发表评论,所以我将其添加到这里。

本文提供了几种有关如何在 Asp.net Web Api 中处理身份验证的选项: http://www.asp.net/web-api/overview/security/authentication-and-authorization-in-aspnet-web-api

但是如果你坚持使用自定义过滤器的方式,另一个选项可能是这样的:

Add custom header to all responses in Web API

在这里,他使用 System.Web.Http.Filters 将自定义 header 添加到响应中。

public class AddCustomHeaderFilter : ActionFilterAttribute
{
    public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
    {
       actionExecutedContext.Response.Content.Headers.Add("customHeader", "custom value goes here");
    }
}

当然会添加到过滤器中:

config.Filters.Add(new AddCustomHeaderFilter());

关于asp.net - 身份验证后手动将属性添加到请求正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22713845/

相关文章:

c# - 发布 ASP.NET 与复制文件

c++ - 使用 cpp-httplib 的 POST 请求

java - 露天休息,文件上传: cannot set description and filename

c# - 如果 DateTime 为 null,我可以将 DateTime 转换为 Bit 以进行 bool 值评估吗?

javascript - 如何在没有图像文件的情况下将文本即时转换为图像

c# - 部署 ASP.NET Web 应用程序

android - Volley - 阻塞方式的http请求

java - ReSTLet 使用 post web 服务,添加 json 字符串作为表示

rest - 验证 REST API 的 HTTP POST 请求正文

c# - ASP.NET MVC 网站(不是项目)是否有可能返回 HttpResponseMessage