C# 如何使用具有密码保护的MVC4/Razor下载文件
控制器功能中有一个链接,可通过该链接下载文件。唯一的问题是该链接具有密码身份验证,在验证用户名和密码后,执行身份验证并使链接可下载的适当方法是什么。 以下是我的控制器功能:C# 如何使用具有密码保护的MVC4/Razor下载文件,c#,asp.net,asp.net-mvc,asp.net-mvc-4,razor,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Razor,控制器功能中有一个链接,可通过该链接下载文件。唯一的问题是该链接具有密码身份验证,在验证用户名和密码后,执行身份验证并使链接可下载的适当方法是什么。 以下是我的控制器功能: [HttpGet] public ActionResult ImportData() { System.IO.DirectoryInfo di = new DirectoryInfo(Server.MapPath("~/App_Data/TempData/DataFile")); foreach (FileI
[HttpGet]
public ActionResult ImportData()
{
System.IO.DirectoryInfo di = new DirectoryInfo(Server.MapPath("~/App_Data/TempData/DataFile"));
foreach (FileInfo csvfile in di.GetFiles())
{
csvfile.Delete();
}
MyWebClient webClient = new MyWebClient();
webClient.DownloadFile("http://gis.abc.org.pk/report.php", Server.MapPath("~/App_Data/TempData/DataFile/Data.csv"));
using (ApplicationDbContext db = new ApplicationDbContext())
{
db.Database.ExecuteSqlCommand("SP_BulkInsertData");
db.Database.ExecuteSqlCommand("SP_InsertData");
db.Database.ExecuteSqlCommand("SP_VillageLevelDataCreation");
}
// return View();
return RedirectToAction("ImportSendMail");
}
我不确定您正在使用的
MyWebClient
是什么,但您可以简单地使用.NetWebClient
并设置凭据。下面是示例代码
using (WebClient webClient = new WebClient())
{
webClient.Credentials = new NetworkCredential(username, password); //set username and password here
webClient.DownloadFile("http://gis.abc.org.pk/report.php", Server.MapPath("~/App_Data/TempData/DataFile/Data.csv"));
}
它给出了以下错误。大容量加载:在数据文件中遇到意外的文件结尾。无法从链接服务器(null)的OLE DB提供程序“BULK”获取所需的接口(“IID_IColumnsInfo”)。@SadiaRashid这是另一个错误,它不是来自代码下载文件代码。请检查此错误的确切位置。我在大容量插入中遇到此错误。无法打开。操作系统错误代码80(该文件存在)。根据我的理解,搜索后出现此错误是因为该文件具有密码身份验证。在堆栈溢出上搜索后,出现此错误是因为权限问题。@SadiaRashid,这与原始问题无关。请提出一个新问题,并说明具体细节。