Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.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 试图使用Rotativa从控制器/视图生成PDF,但安全性约束不';t让Rotativa访问所需的控制器_Asp.net_Asp.net Mvc 4_Pdf_Rotativa - Fatal编程技术网

Asp.net 试图使用Rotativa从控制器/视图生成PDF,但安全性约束不';t让Rotativa访问所需的控制器

Asp.net 试图使用Rotativa从控制器/视图生成PDF,但安全性约束不';t让Rotativa访问所需的控制器,asp.net,asp.net-mvc-4,pdf,rotativa,Asp.net,Asp.net Mvc 4,Pdf,Rotativa,因此,我有一个管理员控制器,它使用带有单个管理员帐户的[Authorize]符号(用于内容管理目的)。如果管理员未登录,则会将用户重定向到登录视图 在管理控制器中,我有以下ActionResult: public ActionResult GeneratePDF(int? id) { return new ActionAsPdf("PrintOrder/" + id) { FileName = Server.MapPath("~/PDF/test.pdf") };

因此,我有一个管理员控制器,它使用带有单个管理员帐户的
[Authorize]
符号(用于内容管理目的)。如果管理员未登录,则会将用户重定向到登录视图

在管理控制器中,我有以下ActionResult:

public ActionResult GeneratePDF(int? id) {
    return new ActionAsPdf("PrintOrder/" + id) {
        FileName = Server.MapPath("~/PDF/test.pdf")
    };
}
以上代码目前用于测试目的,稍后将进行修改

但是,当我从
视图调用ActionResult时(以管理员身份登录),它只生成登录视图的PDF,就好像没有有效的管理员会话,用户被重定向一样。当在PrintOrder
ActionResult
上使用
[AllowAnonymous]
符号时,该代码起作用,但在需要有效的用户会话时不起作用

关于如何让
ActionAsPdf
方法访问所需的PrintOrder方法,并且仍然由
[Authorize]
符号保护,您有什么想法吗

我从以下角度呼吁采取行动:

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

在做了一些长期的研究之后,我发现另一篇文章也有同样的问题

作者建议将Rotativa代码放在它需要访问作为解决方案的相同方法中。这似乎是解决这个问题的一个办法,目前已经足够了。然而,尽管需要一个更稳健的解决方案,但必须这样做