如何限制只有经过身份验证的用户才能访问的静态文件?

时间:2018-03-30 10:07:08

标签: c# asp.net .net asp.net-mvc visual-studio

不允许用户访问HTML文件只有经过身份验证的用户才能访问HTML文件。我已经在web.config文件中放置了身份验证,但这不起作用。

 <location path="test">
    <system.web>
      <authorization>
        <allow users="?"/>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>

当我将此代码放在我的Web.config文件中时,它只是未经身份验证的用户才能访问HTML文件。当我通过应用程序验证登录时,它无法访问HTML文件。

此代码仅拒绝访问不允许访问&#34; test&#34;经过身份验证的用户的文件夹。

提前致谢!!!

1 个答案:

答案 0 :(得分:0)

我有办法用httphandlers做到这一点。

首先在项目中添加一个类并实现IHttpHandler类。然后 将此示例代码添加到ProcessRequest方法。

 if (!HttpContext.Current.User.Identity.IsAuthenticated )
                {
                    HttpContext.Current.Response.Write("//No authenticated access to static files are allowed");
                    return;
                }
var requestedFile=File.ReadAllText(HttpContext.Current.Request.PhysicalPath);
   HttpContext.Current.Response.ContentType = "text/html";
                HttpContext.Current.Response.Write(requestedFile);

当然不要忘记将此引用添加到网络配置中。

 <add verb="*" path="*.html" type="YourNamespace.YourClassName, YourNameSpace" name="JS" />

希望它有所帮助。