【发布时间】:2021-07-28 02:25:03
【问题描述】:
我有一个 ASP.Net MVC 应用程序,当用户请求时(通过 http 请求)动态生成 xml 文件。唯一的问题是它还会将它们写入本地存储的文件中。所以我真的有两个问题:
-
是否可以不在本地写入文件但仍将响应与文件一起发送给客户端
-
或者我可以阻止用户输入文件 URL 并在他们的浏览器上查看它,例如 example.com/test.xml
我有一个身份验证系统来控制某些视图的访问,但我不知道如何为没有视图的东西执行此操作
当前写入文件和发送响应的方式:
[AcceptVerbs(HttpVerbs.Get)]
public void SendXML()
{
if(!User.Identity.IsAuthenticated)
{
return;
}
string path = Server.MapPath("~/Temp/test.xml");
using (Stream s = File.Open(path, FileMode.OpenOrCreate))
{
using (XmlWriter writer = XmlWriter.Create(s, settings))
{
// Write Xml Document
}
}
Response.ContentType = "text/xml";
Response.TransmitFile(path);
}
当前发送请求的方式:
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if(this.readyState == 4 && this.status == 200){
// Good
}
};
xmlhttp.open("GET", "http://example.com/MyController/SendXML", true);
xmlhttp.send();
【问题讨论】:
标签: c# asp.net-mvc xmlhttprequest