Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.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
C# 如何使用具有密码保护的MVC4/Razor下载文件_C#_Asp.net_Asp.net Mvc_Asp.net Mvc 4_Razor - Fatal编程技术网

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
是什么,但您可以简单地使用.Net
WebClient
并设置凭据。下面是示例代码

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,这与原始问题无关。请提出一个新问题,并说明具体细节。