10

私は Facebook C# SDK を使用しており、Facebook アカウントでユーザーを認証しています。それらを「認証」するためのすべてのチェックを実行したら、呼び出しますFormsAuthentication.SetAuthCookie(email, false);

User.Identity.IsAuthenticatedその呼び出しを実行すると、アクション内でアクセスできますか? 私がその電話をかけなかったらどうなりますか?

認証ステータスに基づいて異なるビューを返すいくつかのアクションがありUser.Identity.IsAuthenticated、MVC 4 アプリで信頼できることを確認したいと考えています。

4

1 に答える 1

16

登録され、各要求で実行されるのはFormsAuthentication HTTP モジュールです。このモジュールはmode="Forms"、web.config の<authentication>タグで指定すると自動的に登録されます。すべての 401 応答をインターセプトし、ユーザーを自動的にログオン ページにリダイレクトするのは、この同じモジュールです (最終結果が HTTP ステータス コード 200 になるため、これは望ましい動作ではない場合があります)。

だからあなたの質問に答えるために:

その呼び出しを実行すると、アクション内で User.Identity.IsAuthenticated にアクセスできますか? 私がその電話をかけなかったらどうなりますか?

ではない正確に。この呼び出しは、フォーム認証 Cookie のみを応答に発行します。リクエストのインターセプトを担当するのは HTTP モジュールであり、このリクエストに Cookie が含まれている場合は、User.Identity.

于 2012-08-10T06:11:36.053 に答える