2016-08-04 23 views
0

我有以下代碼中:請求另一個MVC行動從行動

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(); 

的授權屬性似乎保持重定向請求到登錄界面,即使身份驗證cookie添加到請求。

爲什麼我無法將cookie發送到同一站點內的另一個操作,並且如果我能夠,添加cookie時爲什麼是授權屬性重定向請求?

感謝

+0

您應該將您嘗試調用的操作中的邏輯移動到它自己的類中,並在您需要的任何操作方法中使用它。這樣你就不會通過HTTP請求不必要地調用它(以及所有將要發生的開銷) – DavidG

回答

2

這通常是壞主意,使從後端應用相同的後端應用程序的HTTP請求。

您可以將邏輯從PdfController下的JobDetailsPDF操作移到某個可以在兩個地方使用的常用類:JobDetailsPDF和您當前的代碼位置。

+0

感謝你的回答,當我開始遇到問題時我開始重構,但我想了解爲什麼從一個cookie發送cookie對下一個行動是行不通的。你碰巧知道嗎? – Jamez

+0

第一個請求來自客戶端瀏覽器(其中包含身份驗證cookie),而第二個請求由後端服務器完成,該服務器沒有身份驗證Cookie。 – serhiyb

+0

不會從傳入請求添加cookie包括auth cookie? – Jamez

相關問題