Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 自定义授权i asp.net web api_C#_Asp.net_Asp.net Mvc_Asp.net Mvc 4_Asp.net Web Api - Fatal编程技术网

C# 自定义授权i asp.net web api

C# 自定义授权i asp.net web api,c#,asp.net,asp.net-mvc,asp.net-mvc-4,asp.net-web-api,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Asp.net Web Api,我有一个使用WebAPI和MVC的项目。身份验证由FormsAuthentication处理,它创建一个包含有关用户的一些数据的cookie 我扩展了System.Web.Mvc.authorized属性,并将其添加到每个Mvc控制器中。它所做的是扩展AuthorizeCore并检查cookie的内容,这是我自己对IPrinciple的扩展,用于检查用户当前是否具有有限的访问权限 我想对Web Api的调用进行类似的检查,因此我为System.Web.Http.authorized属性做了一个扩

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

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

我想对Web Api的调用进行类似的检查,因此我为System.Web.Http.authorized属性做了一个扩展,该扩展覆盖了IsAuthorized方法。
在这种方法中,我想对控制器进行相同的检查,但我不知道如何从cookie中获取信息,或者这是否是正确的方法

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

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


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

无需触摸身份验证cookie!顺其自然。