【问题标题】:How to download file with MVC4/Razor having password protection如何使用具有密码保护的 MVC4/Razor 下载文件
【发布时间】:2018-06-07 04:04:42
【问题描述】:

控制器函数内部有一个链接,通过该链接下载文件,唯一的问题是该链接上有密码验证,在验证用户名和密码后,执行验证并使链接可下载的适当方法是什么。 这是我的控制器功能:

[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");
}

【问题讨论】:

    标签: c# asp.net asp.net-mvc asp.net-mvc-4 razor


    【解决方案1】:

    我不确定您使用的是什么 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(文件存在。)。据我了解,搜索后出现此错误,因为文件上有密码验证。
    • 在 stack-overflow 上搜索后,由于权限问题而出现此错误。
    • @SadiaRashid 这与您的原始问题无关。请提出一个包含具体细节的新问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-03
    • 2015-03-18
    • 2012-06-25
    • 1970-01-01
    • 2014-07-08
    • 1970-01-01
    • 2011-06-16
    相关资源
    最近更新 更多