Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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
Asp.net mvc 从操作中请求另一个MVC操作_Asp.net Mvc_Authentication_Cookies_Httpclient - Fatal编程技术网

Asp.net mvc 从操作中请求另一个MVC操作

Asp.net mvc 从操作中请求另一个MVC操作,asp.net-mvc,authentication,cookies,httpclient,Asp.net Mvc,Authentication,Cookies,Httpclient,我有以下代码: var url = Url.Action("JobDetailsPDF", "PdfController", new { orderid = model.OrderId }, Request.Url.Scheme); var request = new HttpRequestMessage(HttpMethod.Get, url); request.Headers.TryAddWithoutValidation("Cookie", Request.Headers["Cookie

我有以下代码:

var url = Url.Action("JobDetailsPDF", "PdfController", new { orderid = model.OrderId }, Request.Url.Scheme);

var request = new HttpRequestMessage(HttpMethod.Get, url);
request.Headers.TryAddWithoutValidation("Cookie", Request.Headers["Cookie"]);

var client = new HttpClient();

var response = await client.SendAsync(request);
var result = await response.Content.ReadAsByteArrayAsync();
Authorize属性似乎一直将请求重定向到登录屏幕,即使已将auth cookie添加到请求中

为什么我无法将cookie发送到同一站点内的另一个操作?如果我能够,为什么在添加cookie时authorize属性会重定向请求


谢谢,从后端应用程序向同一后端应用程序发出HTTP请求通常不是个好主意


您可以将逻辑从PdfController下的JobDetailsDf操作移动到某个公共类,该类可以从两个位置使用:JobDetailsDf和您当前的代码位置。

从后端应用程序向同一后端应用程序发出HTTP请求通常是个坏主意


您可以将逻辑从PdfController下的JobDetailsDf操作移动到某个公共类,该类可以从两个位置使用:JobDetailsDf和您当前的代码位置。

您应该将尝试调用的操作中的逻辑移动到它自己的类中,并在您需要的任何操作方法中使用该逻辑。这样,您就不会通过HTTP请求不必要地调用它(以及将产生的所有开销),您应该将尝试调用的操作中的逻辑移动到它自己的类中,并在您需要的任何操作方法中使用该逻辑。这样你就不会不必要地通过HTTP请求调用它(以及由此产生的所有开销)。谢谢你的回答,当我开始遇到问题时,我已经启动了重构,但我想了解为什么从一个操作到下一个操作发送cookie不起作用。您知道吗?第一个请求来自客户端浏览器(其中包含auth Cookie)而第二个请求是由后端服务器完成的,该服务器中没有身份验证cookie。从传入请求添加的cookie不包括身份验证cookie吗?您可以这样做,它应该可以工作,但总体解决方案设计看起来非常奇怪,开销很大。感谢您的回答,当我开始遇到问题时,我就开始进行重构,但我想了解为什么从一个操作发送cookie到下一个操作不起作用。您知道吗?第一个请求来自客户端浏览器(其中包含auth Cookie)而第二个请求是由后端服务器完成的,该服务器中没有身份验证cookie。从传入请求添加的cookie不包括身份验证cookie吗?您可以这样做,它应该可以工作,但总体解决方案设计看起来非常奇怪,开销很大。