自定义授权i asp.net web api

本文关键字:web api net asp 授权 自定义 | 更新日期: 2023-09-27 18:21:22

我有一个同时使用WebApi和MVC的项目。身份验证由FormsAuthentication处理,它创建一个包含有关用户的一些数据的cookie。

我扩展了System.Web.Mvc.AuthorizeAttribute,并将其添加到每个Mvc控制器中。它所做的是扩展AuthorizeCore并检查cookie的内容,这是我自己对IPrinciple的扩展,用于判断用户当前的访问权限是否有限。

我想对Web Api的调用进行类似的检查,所以我对System.Web.Http.AuthorizeAttribute进行了扩展,它覆盖了IsAuthorized方法。在这种方法中,我想进行与控制器相同的检查,但我不知道如何从cookie中获取信息,也不知道这是否是正确的方法。

自定义授权i asp.net web api

通常不建议在web api中使用cookie身份验证。原因是只有在浏览器中才能很好地处理cookie。web api的整个概念是允许其他客户端(本地客户端、java脚本…)也使用它。

如果您确定您的服务器将只从浏览器访问,也许您应该将api操作转移到MVC项目(它也可能返回json/xml)。这样你就不必处理这些问题了。

对于web api,我建议使用基于令牌的身份验证