私はカスタムメンバーシッププロバイダを使用しています。すべてがうまくいっています。しかし、私のweb.configファイルでは、サイト全体がロックされるように「ユーザーを拒否する」が有効になっています。ASP.NET MVC 2認証の問題
これは素晴らしいです。ユーザーはログインページにリダイレクトされます。
ここで、匿名アクセスを許可するコントローラ/アクションがいくつかあります。私が匿名を望むコントローラ/アクションのためにそれらをすべてのコントローラに置き、[許可]属性を置くことです。
これは私には逆のようです。私はすべてをデフォルトでロックし、匿名のものをロック解除する方が好きです。
方法はありますか?
ありがとうございます!
感謝を。つまり、これはweb.configのようなサイトが完全に開いていることを意味しますが、ProtectedControllerから継承している限り、すべてのコントローラはデフォルトでロックダウンされますか? – cbmeeks
@cbmeeks - 正しい。また、AuthorizeAttribute(またはそれから派生したもの)、つまりMVCセキュリティを使用することは、WebFormsベースのセキュリティとMVCセキュリティを組み合わせようとするよりもはるかに望ましいことだと思います。 – tvanfosson
**注意** AuthorizeAttributeクラスは、作成後は変更できないようにする必要があります。 HttpContext.Itemsを使用してActionDescriptorを格納することはできますが、クラス内のインスタンスフィールドとして絶対に*保存してはいけません*。この理由は、複数の同時リクエストを処理するためにAuthorizeAttributeの1つのインスタンスを使用でき、インスタンスコードを導入することによって、セキュリティコードに競合状態が発生するためです。 – Levi