ASP.NET - 打开文件而不显示对话框

时间:2015-09-08 16:32:34

标签: c# asp.net .net icalendar

我想在我的ASP.NET应用程序中生成一个ICS文件(iCalendar),然后自动打开它而不显示文件对话框“打开/保存/取消”。

这个生成的文件将由用户对这些ics文件的默认应用程序打开。

我试过了:

String sICSPath = Server.MapPath(".") + @"\Files\Test.ics";
String sFullText = File.ReadAllText(sICSPath);
sFullText = sFullText.Replace("#NAME#", "MyName");

this.Response.ContentType = "Content-Type: text/Calendar";
this.Response.AddHeader("Cache-Control", "no-cache, must-revalidate");
this.Response.AddHeader("Pragma", "no-cache");
this.Response.AddHeader("Content-Disposition", "inline; filename=calendar.ics");
this.Response.Write(sFullText);
this.Response.End();

我尝试了其他标题,例如Content-Type : application/outlookContent-Disposition : attachment;而不是Content-Disposition : inline; ....但没有成功。

此代码用于通过对话框打开ICS。但我会自动打开它而不显示此对话框。

如何做到这一点?

1 个答案:

答案 0 :(得分:3)

你做不到。用户的浏览器设置确定他们是否会看到保存对话框,或者是否直接保存并打开。

想象一下,如果假设它按照您的意愿运作 - 这将是一个巨大的安全漏洞。