所以,我有一个管理员控制器,它使用[Authorize]
表示法和一个管理员帐户(用于内容管理)。如果管理员未登录,则会将用户重定向到登录视图。
在Admin控制器中,我发现了这个ActionResult:
public ActionResult GeneratePDF(int? id) {
return new ActionAsPdf("PrintOrder/" + id) {
FileName = Server.MapPath("~/PDF/test.pdf")
};
}
上述代码目前用于测试目的,稍后会进行修改。
但是,当我从View
调用ActionResult(以管理员身份登录)时,它只生成登录视图的PDF,就好像没有有效的管理会话并且用户被重定向一样。在PrintOrder [AllowAnonymous]
上使用ActionResult
表示法时,代码可以正常工作,但在需要有效用户会话时则不行。
有关如何让ActionAsPdf
方法访问所需的PrintOrder方法并仍以[Authorize]
表示法保护的任何想法?
我从View中调用Action如下:
<a href="@Url.Action("GeneratePDF", "Admin", new { id = item.ID })">Get PDF</a>
答案 0 :(得分:0)
经过长时间的研究后,我发现了另一篇同样问题的帖子。
Why does Rotativa always generate my login page? Why is it slow?
作者建议将Rotativa代码放在需要作为解决方案访问的相同方法中。这似乎是解决问题的方法,现在已经足够了。然而,虽然需要更强大的解决方案,但这必须要做。