从Action中请求另一个MVC操作

时间:2016-08-04 17:36:54

标签: 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 client = new HttpClient();

var response = await client.SendAsync(request);
var result = await response.Content.ReadAsByteArrayAsync();

即使将auth cookie添加到请求中,Authorize属性似乎也会将请求重定向到登录屏幕。

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

由于

1 个答案:

答案 0 :(得分:2)

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

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