C# 下载管理器通过授权操作重定向到登录,以便在mvc中下载文件

C# 下载管理器通过授权操作重定向到登录,以便在mvc中下载文件,c#,visual-studio,C#,Visual Studio,我使用此操作下载一些文件。用户需要在下载这些文件之前登录。(这是非常简单的操作代码版本。) 当用户已经登录并尝试使用浏览器下载文件时,一切正常,但如果用户尝试使用某些下载管理器软件(如:IDM ,即使用户在IDM中使用了身份验证选项,登录页面也将被下载而不是文件 如何使此操作也适用于下载管理器?很可能下载管理器正在尝试使用基本身份验证,而您的应用程序正在使用基于表单的身份验证。下载管理器需要填写用户/密码登录表单,然后提交以获取支持代码的cookie 似乎IDM使用通过IE登录的会话中的现有co

我使用此操作下载一些文件。用户需要在下载这些文件之前登录。(这是非常简单的操作代码版本。)

当用户已经登录并尝试使用浏览器下载文件时,一切正常,但如果用户尝试使用某些下载管理器软件(如:IDM ,即使用户在IDM中使用了身份验证选项,登录页面也将被下载而不是文件


如何使此操作也适用于下载管理器?

很可能下载管理器正在尝试使用基本身份验证,而您的应用程序正在使用基于表单的身份验证。下载管理器需要填写用户/密码登录表单,然后提交以获取支持代码的cookie

似乎IDM使用通过IE登录的会话中的现有cookie。。。请看这里:


您的问题不清楚是否要继续限制未登录用户下载?我想登录用户可以使用下载管理器下载这些文件。为了清楚起见,我编辑了您的问题。那么您是说,当用户通过身份验证时,下载管理器会以某种方式下载登录页面?听起来好像你(用户)没有经过身份验证?您能否在代码中验证用户是否已通过身份验证,而不仅仅是使用[Authorize]标记?也许你们可以给我们看你们的下载管理器代码?我在客户端使用下载管理器软件,然后就并没有代码显示了。我在HttpContext.Current.User.Identity.IsAuthenticated等代码中使用了一些其他方法,如检查会话或检查授权,但用户未通过身份验证。如果没有看到所有这些代码,很难判断,但我认为您的描述指出了这样一个事实,即您在下载过程中不知何故脱离了上下文,但同时也遇到了一个授权标签,该标签正在重定向到登录页面。
    [Authorize]
    public ActionResult Download(long id)
    {
        //or use this code instead of filter
        if (!httpContext.IsAuthenticated())
        {
            return RedirectToAction("Login", "Account");
        }
        byte[] fileBytes = System.IO.File.ReadAllBytes(file.Path);
        string fileName = file.Name 
        return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, 
        fileName);
    }