1

フォーム認証、AuthorizeAttribute、および 302 リダイレクト ループでクレイジーな問題が発生しています。何が起こっているのかを知る必要があります。フォーム認証と AuthorizeAttribute をデバッグできる方法はありますか?

重要な場合に備えて、もう少し詳細を示します。

  1. カスタム メンバーシップ プロバイダーとロール プロバイダーを使用しています。正しいメソッドを実装し、カスタム データベース テーブルからユーザー/ロールを読み取っています。

  2. web.configカスタムプロバイダーを指すために、次のものがあります。

    <membership defaultProvider="MyMembershipProvider">
        <providers>
            <clear />
            <add name="MyMembershipProvider" type="Domain.Entities.Security.MyMembershipProvider" connectionStringName="MyDB" MinRequiredPasswordLength="8" MaxInvalidPasswordAttempts="5" MinRequiredNonAlphanumericCharacters="0" applicationName="My App Name" />
        </providers>
    </membership>
    <profile enabled="false">
        <providers>
            <clear />
        </providers>
    </profile>
    <roleManager enabled="true" defaultProvider="MyRoleProvider" cookieTimeout="2800" cookieSlidingExpiration="true" cacheRolesInCookie="true">
        <providers>
            <clear />
            <add name="MyRoleProvider" type="Domain.Entities.Security.MyRoleProvider" connectionStringName="MyDB" applicationName="/" />
        </providers>
    </roleManager>
    
  3. コントローラー/アクションの一部が「開いています」。それらのいくつかには、「Authorize[Roles="admin"]」などがあります。

  4. 何も起こらずに何時間もアプリケーションで作業できることもあります。ログインした直後に 302 リダイレクト ループに遭遇し、他のページに移動しようとすることがあります。それが起こると、時々 302 リダイレクト ループに入らない限り、最上位のパスに入ることができません。

指示、指針、提案は大歓迎です。

4

1 に答える 1

-1

リンク先の質問の回答を参照してください。これは、リダイレクト ループの問題に対する解決策でした。 IIS セッションのタイムアウトとフォーム認証のループ

于 2013-11-11T09:51:49.170 に答える