Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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# 4.0 ASP.NET Web API身份验证始终重定向到登录页_C# 4.0_Asp.net Mvc 4_Asp.net Web Api - Fatal编程技术网

C# 4.0 ASP.NET Web API身份验证始终重定向到登录页

C# 4.0 ASP.NET Web API身份验证始终重定向到登录页,c#-4.0,asp.net-mvc-4,asp.net-web-api,C# 4.0,Asp.net Mvc 4,Asp.net Web Api,我的ASP.NET MVC应用程序正在使用带有[System.Web.MVC.Authorize]的表单身份验证。我想使用[System.Web.Http.Authorize]属性来保护我的Web API控制器,因为我使用HttpClient从我的MVC控制器调用它,所以我已经实现了一个自定义的委托处理程序,如以下文章中的一个: 调试时,我可以看到主体已设置,用户具有正确的角色,但我仍然被重定向到登录页面 因此,基本上,当我使用浏览器登录并访问WebAPI操作时,一切都正常(就像我在视图中使用

我的ASP.NET MVC应用程序正在使用带有
[System.Web.MVC.Authorize]
的表单身份验证。我想使用
[System.Web.Http.Authorize]
属性来保护我的Web API控制器,因为我使用
HttpClient
从我的MVC控制器调用它,所以我已经实现了一个自定义的委托处理程序,如以下文章中的一个:

调试时,我可以看到主体已设置,用户具有正确的角色,但我仍然被重定向到登录页面

因此,基本上,当我使用浏览器登录并访问WebAPI操作时,一切都正常(就像我在视图中使用AJAX一样),但当我在控制器内部使用
HttpClient
时(我知道这是一个具有不同上下文的新请求),并进行基本身份验证和设置主体时,我总是会被重定向

我尝试了很多解决方案/变通方法,我总是被重定向到登录页面。 每个人都有一个想法。

这里有一个解释:

另一个有趣的地方是使用自定义授权。我做到了,而且成功了。以下示例:


祝您好运

那么,当您登录后,您是否在委派处理程序中验证登录cookie是否已针对每个请求发送。如果是这样,它应该授权你