2017-10-17 7 views
0

私のプロジェクトの下に、いくつかの静的ファイル、つまり.htm.jsのファイルがあるフォルダを保護しようとしています。またASP.NET内の静的ファイルを許可されたユーザーにのみ提供

public class StaticFilesRouteHandler : IRouteHandler 
{ 
    public IHttpHandler GetHttpHandler(RequestContext context) 
    { 
     return new StaticFilesHttpHandler(); 
    } 
} 

を提供するために、Route.Config

routes.RouteExistingFiles = true; 
routes.Add("helpRoute", new Route("folder/*.htm", new StaticFilesRouteHandler())); 

とルートハンドラ経由のルートで使用することを登録し、その後

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; 
} 

:私のようなカスタムHttpHandlerを作成しようとしましたweb.configの下にsystem.webServer

<handlers> 
    <add name="StaticFileHandler" verb="GET" path="~/help/default.htm" type="StaticFilesHttpHandler "/> 
</handlers> 

フォルダ内のファイルはサードパーティによって提供されています。私は、そのサブ構造内の適切な.htmファイルにユーザーをリダイレクトするフォルダ内のjsファイル内の関数を呼び出します。ユーザーがURLを入力してファイルのいずれかにアクセスできるようにする必要はありません。私は間違って何をしていますか?

+0

[MVCウェブサイト - 静的ファイルへのアクセスを禁止する方法](https://stackoverflow.com/q/36425635/) – NightOwl888

+0

@ NightOwl888これらのファイルへのすべてのアクセスを削除します。私はまだユーザーが許可されている場合に限り、それらのファイルにアクセスできるようにしたい。 –

+0

あなたは正しいです。 [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

答えて

1

タイプをTransferRequestHandlerに変更し、パスが正しいことを確認できますか。あなたのGlobal.asaxファイル内

<handlers> 
    <add name="StaticFileHandler" verb="GET" path="~/help/default.htm" type="TransferRequestHandler" /> 
</handlers> 

あなたは要求が認証されているかどうかを確認するためにApplication_BeginRequestで要求にアクセスすることができます。

関連する問題