質問

MSDN コードサンプルの説明:次のコード例では、IsAuthenticated プロパティを使用して、現在の要求が認証されているかどうかを判断します。認証されていない場合、要求は別のページにリダイレクトされ、ユーザーはそこで資格情報を Web アプリケーションに入力できます。これは、アプリケーションのデフォルト ページで使用される一般的な手法です。

これは素晴らしいですが、詳細も何もありません...

いったい何をチェックしているのでしょうか?どうすれば true に設定できますか?

期待された以上の仕事をする:これに関する詳細なドキュメントはどこにありますか?

役に立ちましたか?

解決

Google のおかげで、@keyboardP が参照している投稿のキャッシュされたバージョンを見つけました。 彼の答え. 。元のリンクが壊れているため(2012-12-06)、他の人への参考としてその回答/投稿をここに投稿します。

元の質問 以下の回答は次のことを指します。

フォームベースのアプリケーションを使用しているので、フィット感が生じます。私は、isAuthenticatedプロパティが真実である場所で、それは今では虚偽であり、予想どおりに機能していなかったことに気付きました。無効な設定があるのだろうか?

誰もが私に、ISAuthenticatedプロパティをTrueに設定するものを教えてもらえますか?

ダニエル・ケントの答え:

Request.IsAuthenticated フォームの認証だけではありません - それはどのタイプの認証が使用されていても有効です(Windows、パスポート、フォーム、または独自のカスタムスキーム)

HttpRequest.IsAuthenticated リクエストを作成するユーザーが認証されている場合に当てはまります。基本的に、このプロパティは同じ情報を提供します Context.User.Identity.IsAuthenticated.

リクエストの開始時に、 Context.User.Idenity が含まれています GenericIdentityユーザー名が null の場合。の IsAuthenticated このオブジェクトのプロパティが返されます false それで Request.IsAuthenticated になるだろう false. 。認証モジュールが処理するとき Application_AuthenticateRequest イベントと成功は、それが置き換えるユーザーを認証します GenericIdentityContext.User.Identity 新しいもので IIdentity 返されるオブジェクト true それから IsAuthenticated 財産。 Request.IsAuthenticated その後戻ります true.

フォーム認証の場合、フォーム認証モジュールは、認証Cookieに含まれる暗号化された認証チケットを使用してユーザーを認証します。これが完了すると、GenericIdentityContext.User.Identity とともに FormsIdentity 返すオブジェクト True そのから IsAuthenticated 財産。

そこで、設定 IsAuthenticatedtrue 実際にはログインとは異なります。Jeffが言うように、認証チケットが生成され、Cookieとしてクライアントに送信されたときに認証が発生するようにログインします。(RedirectFromLoginPage または SetAuthCookie) 私たちが話していることIsAuthenticated 各ページリクエストで行われる認証です。ログインは、ユーザーが資格情報を入力し、チケットを発行されたときに発生します。各リクエストで認証が発生します。

scroll top