gpt4 book ai didi

c# - 编写适用于 MVC 和 Web API 请求的过滤器

转载 作者:行者123 更新时间:2023-11-30 18:32:20 29 4
gpt4 key购买 nike

我的 ASP.NET 应用程序使用 ASP.NET MVC 为网页提供服务,并使用 ASP.NET Web API 为源自这些网页的 AJAX 请求提供服务。

我想要某些事情,比如检查请求是否经过身份验证,在 HttpContext 中设置适当的事情,无论我正在处理哪种类型的请求。

我目前不得不写两个类

1) 一个继承 - System.Web.Mvc.ActionFilterAttribute 用于 MVC 请求2) 一个继承 - System.Web.Http.Filters.ActionFilterAttribute 用于 Web API 请求

有没有一种方法可以为网站应用针对 MVC 和 API 请求运行的过滤器?还是通过旧的 http 模块作为这种用例的推荐方式?

最佳答案

我没有看到将 MVC 和 Web API 中用于身份验证/授权的过滤器放入单个过滤器中的好方法,因为它们具有非常不同的行为。对于用户授权失败时的 MVC 请求,您希望将他们重定向到另一个页面以作为另一个用户登录或只是让他们知道他们无权访问该页面。对于用户授权失败时的 Web API 请求,您希望发送一个指示授权失败的 HTTP 状态代码并让客户端处理它。如果例如你 add basic authentication to your filter as described in this article,他们甚至可以在行为和功能上离题更多.这只对 Web API 请求有意义,对 MVC 请求没有意义。我认为拥有两个不同的过滤器是一种更清晰的分离。

关于c# - 编写适用于 MVC 和 Web API 请求的过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18770596/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com