2017-05-25 16 views
0

所以,我有一個使用[Authorize]符號與單個管理員帳戶(一個管理員控制器內容管理目的)。如果管理員未登錄,則會將用戶重定向到登錄視圖。試圖給我們Rotativa產生從控制器/查看PDF,但安全restictions不讓Rotativa訪問所需的控制器

在管理控制器,我有這樣的ActionResult:

public ActionResult GeneratePDF(int? id) { 
    return new ActionAsPdf("PrintOrder/" + id) { 
     FileName = Server.MapPath("~/PDF/test.pdf") 
    }; 
} 

上面的代碼是目前用於測試目的,並會在以後修改。

但是,當我從View(以管理員身份登錄時)調用ActionResult時,它僅生成登錄視圖的PDF,就好像沒有有效的管理會話並且用戶被重定向一樣。使用上PrintOrder ActionResult[AllowAnonymous]符號的時候,而不是當需要一個有效的用戶會話的代碼工作。

關於如何讓ActionAsPdf方法訪問所需的PrintOrder方法並仍由[Authorize]表示法保護的任何想法?

我打電話從查看操作如下:

<a href="@Url.Action("GeneratePDF", "Admin", new { id = item.ID })">Get PDF</a> 

回答

0

做一些過長的研究之後,我發現另一篇文章中有同樣的問題。

Why does Rotativa always generate my login page? Why is it slow?

作者表明Rotativa代碼放置在其需要訪問作爲溶液的方法相同。這似乎是解決問題的一種解決方法,現在已經足夠了。然而,雖然需要更強大的解決方案,但這必須做到。