如何限制用户访问静态内容

时间:2016-10-28 17:16:05

标签: asp.net-mvc

在我的MVC"电子学习"项目我有一个文件夹"课程"因为每个用户都有一个文件夹,每个用户都有一个文件" index.html"。

我的问题是没有人可以直接访问该文件夹页面

user1无法访问user2文件夹内容,否则任何人都无法访问文件夹内容,除非谁有权利。

"我不想使用表单身份验证"

像:

这不应该发生。

本地主机:7689 //场/用户1 / index.html中

只有授权使用才能访问此人,其他任何人都无法访问此内容。

方案

user1登录然后他只能访问该文件夹" User1" 本地主机:7689 //场/用户1 / index.html中

user2登录然后他只能访问该文件夹" User2" 本地主机:7689 //场/用户2 / index.html中

提前致谢

2 个答案:

答案 0 :(得分:0)

很简单:

第1步:

In RouteConfig.cs Add
routes.RouteExistingFiles = true;

步骤2:使用Controller和Action映射静态内容网址并检查验证

routes.MapRoute(
      name: "staticFileRoute",
      url: "Courses/{subFolder}/{file}",
      defaults: new { controller = "Account", action = "HandleStatic" });

在控制器中:---

public ActionResult HandleStatic()
    {
        return File(Request.RawUrl, "text/html");
     }

第3步:在Web.Config中添加

<modules runAllManagedModulesForAllRequests="true" />  

请记住,您无法获得仅在控制器中获得的RouteConfig文件的断点。

答案 1 :(得分:-1)

您可以使用htpasswd密码保护目录 - 管理用户文件以进行基本身份验证并为每个用户创建用户/密码,但是您必须在手动创建用户/密码时与每个用户共享这些登录详细信息