0
我試圖確保我的項目下只有一些靜態文件的文件夾,組合爲.htm
和.js
文件。我曾嘗試創建一個自定義HttpHandler
,如:僅向授權用戶提供ASP.NET中的靜態文件
public class StaticFilesHttpHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
if (context.Request.IsAuthenticated)
{
// continue with the request
}
else
{
throw new HttpResponseException(HttpStatusCode.Unauthorized);
}
}
public bool IsReusable => false;
}
然後註冊它可以通過Route.Config
routes.RouteExistingFiles = true;
routes.Add("helpRoute", new Route("folder/*.htm", new StaticFilesRouteHandler()));
和路由處理程序與路徑用於提供
public class StaticFilesRouteHandler : IRouteHandler
{
public IHttpHandler GetHttpHandler(RequestContext context)
{
return new StaticFilesHttpHandler();
}
}
,也通過web.config
在system.webServer
<handlers>
<add name="StaticFileHandler" verb="GET" path="~/help/default.htm" type="StaticFilesHttpHandler "/>
</handlers>
文件夾中的文件由第三方提供。我將在文件夾中的一個js文件中調用一個函數,然後將該用戶重定向到其子結構中適當的.htm文件。我不希望用戶能夠輸入網址並訪問任何文件。我究竟做錯了什麼?
請參閱[MVC網站 - 如何防止訪問靜態文件](https://stackoverflow.com/q/36425635/) – NightOwl888
@ NightOwl888可以消除對這些文件的所有訪問。我仍然希望用戶能夠訪問這些文件,但只有在授權後才能訪問這些文件。 –
你說得對。您應該看到[如何在IIS 7.5上使用ASP.NET窗體身份驗證保護靜態文件?](https://stackoverflow.com/questions/2903292/how-do-i-protect-static-files-with-asp- net-form-authentication-on-iis-7-5)。 – NightOwl888