FormsAuthenticationModuleは、暗号化された Cookie を使用してユーザーとロールの情報を追跡するために使用されます。
しかし、このモジュールには、Web ページを要求しているユーザーがフォーム認証チケットを持っているかどうかを実際に検出し、そうでない場合はユーザーをログイン ページにリダイレクトするコードも含まれていますか?
ありがとう
FormsAuthenticationModuleは、暗号化された Cookie を使用してユーザーとロールの情報を追跡するために使用されます。
しかし、このモジュールには、Web ページを要求しているユーザーがフォーム認証チケットを持っているかどうかを実際に検出し、そうでない場合はユーザーをログイン ページにリダイレクトするコードも含まれていますか?
ありがとう
ドキュメントによると、FormsAuthenticationModuleのみ
フォーム認証が有効な場合に、ASP.NET アプリケーションのユーザーの ID を設定します。
ただし、他の場所を見回すと (これを指摘してくれた Erv に感謝します)、フォーム認証モジュールは、アプリケーションの EndRequest イベントにフックすることによって、ユーザーをログイン ページにリダイレクトする役割を果たします。
これは、ロールとは何の関係もないことを意味します - ロールはRoleManagerModuleによって処理されます
そのため、UrlAuthorizationModuleは認証モジュール (フォーム、Passport /Live、Windowsなど) とロール プロバイダー (適切なロール モジュールを使用して) を使用してアクセスを強制し、実際にユーザーをチェックしているCheckUrlAccessForPrincipleの場合アクセス権が false を返し、401 エラーが発生し、これが処理のために ASP.NET に返されます。
その後、アプリは EndRequest イベントを発生させます。これは FormsAuthenticationModule によって取得され、最終的にユーザーを web.config の Forms auth セクションで定義されたデフォルトのログイン ページにリダイレクトします。