2012-01-19 7 views
0

私はFormsAuthenticationを使用しているMVC3アプリケーションを持っています。ユーザーがログインすると、チケットが作成され、ダッシュボードに表示されます。mvc3環境でのファイルの保護

コントローラでは、[Authorize]属性を使用して、承認された担当者だけがアクションを実行するようにしています。

ただし、ユーザーがファイルをアップロードできるサイトの一部があります。ファイルがアップロードされると、正しい拡張子(ダッシュのないGUID)を持つランダムな文字列に名前が変更されます。

認証されていないユーザーと権限のないユーザーをこのディレクトリに制限する方法と、MVC3環境で使用しているFormsAuthenticationに基づいてこれらのファイルを表示する方法を教えてください。

答えて

1

Web.Configファイルを作成し、そのファイルがあるフォルダ内に次のエントリを含めます。

<configuration> 
    <system.web> 
    <authorization> 
     <deny users="*"/> 
    </authorization> 
    </system.web> 
</configuration> 

これにより、すべてのユーザーのフォルダ内のファイルに直接アクセスできなくなります。ファイルにアクセスするためのUIを証明しました。ここで、ユーザーがアクセスできるファイルを確認し、すべてのファイルへのアクセスを禁止することができます。

特定の権限を持つユーザーのためにフォルダに直接アクセスする場合は、そのユーザーをロールに追加し、そのロールに対して許可を与える必要があります。

<configuration> 
    <system.web> 
    <authorization> 
     <allow roles="Admin" /> 
     <deny users="*" /> 
    </authorization> 
    </system.web> 
</configuration> 
+0

これはWebFormsからMVC3に変更されていませんか?ダン。私はこれを別のやり方で行う巧妙な方法があると思った。 – Sean

+0

@Sean Asp.netランタイムは、WebFormsとMVCの両方に共通です。あなたの質問から、フォルダブラウジングアクセスを許可したい、または一連のユーザーに対して各ファイルにアクセス許可を与えたいということは明らかではありません。 – Eranga

+0

動作しません。少なくとも保護されたフォルダ内の特定のファイルではありません。私はMVC 4.0を使用しています。 – Nestor

関連する問題