Fluent Security を使用して、DenyAnonymousAccess、DenyAuthenticationAccess、および RequireRole を使用して Web サイト アクセスを構成しました。ただし、HandleSecurityAttributeは認可フィルターではないため、処理するすべてのロジックはDenyAnonymousAccessPolicyViolation、 などの認可フィルターの後にのみ実行されValidateAntiForgeryTokenます。
これは、現在のユーザーの認証チケットがタイムアウトの場合ValidateAntiForgeryToken、トークンが匿名ユーザー用に作成されていないため、 で装飾されたすべてのアクションが例外をスローすることを意味します。
これを回避する方法はありますか?現在、次の 2 つのソリューションを検討しています。
- セキュリティが行うことを正確に実行するために、独自の承認フィルターを作成
HandleSecurityAttributeします。 - グローバル
Authorizeファイラーを使用して認証を処理し、ロールやその他のアクセス ポリシーを FluentSecurity に任せます。 
アップデート:
github でデモをチェックインしました。このユーザー名とパスワードは dev1 と devdev です。フォーム認証のタイムアウトを 1 分に設定しました。したがって、ログインして 1 分間待ってからログオフをクリックすると、匿名ユーザーに対してトークンが作成されていないことがわかります。通常の MVC では、ユーザーをログイン画面にリダイレクトする [ValidateAntiForgeryToken] の前に [Authorize] が実行されるため、これは発生しません。