我正在使用 iTextSharp 来使用函数并将 HTML 转换为 PDF,以从图标执行此操作我在 Controller 中调用函数,发送 html 字符串作为参数,这样做时出现错误,我想知道是否有人知道我该如何解决它。
Error
从客户端检测到潜在危险的 Request.QueryString 值 (Html="<!DOCTYPE html PUBLI...")
View
@foreach (var item in Model.RecordEntries) {
<a target="_blank" validateRequest="false" rel="noopener noreferrer" href="@Url.Action("Export", "Home" , new { item.Html })"> <i class="fas fa-eye"> </i></a>
}
Controller
[HttpPost]
[ValidateInput(false)]
public FileResult Export(string GridHtml)
{
using (MemoryStream stream = new System.IO.MemoryStream())
{
StringReader sr = new StringReader(GridHtml);
Document pdfDoc = new Document(iTextSharp.text.PageSize.A4, 10f, 10f, 100f, 0f);
PdfWriter writer = PdfWriter.GetInstance(pdfDoc, stream);
pdfDoc.Open();
XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr);
pdfDoc.Close();
return File(stream.ToArray(), "application/pdf", "Grid.pdf");
}
}
最佳答案
您可以通过对输入数据进行编码来禁用请求验证。尝试按以下方式进行:
string encodedString = HttpUtility.UrlEncode(Request.QueryString["name"]);
或者作为替代选项,您可以在 web.config 中添加重置 validateRequest 参数:
<configuration>
<system.web>
<httpRuntime requestValidationMode="2.0"
validateRequest="false"/>
</system.web>
</configuration>
但是,这种方法将使您的应用程序更容易受到不同类型的攻击。</p>
关于javascript - 从客户端检测到潜在危险的 Request.QueryString 值(Html ="<!DOCTYPE html PUBLI...")asp.net mvc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76115660/