FC2ブログ
ざっくりasp.net mvc でのform認証処理
ASP.NET MVCでのform認証のを使ったログイン処理の流れはこんな感じだと思う。

このあたり資料を見てなかったのと、とりあえず作ったら動いたので絶賛放置中なのでちゃんと勉強しようと思う。
なんとなくの経験と妄想から予想したので大きく違うかも。ちゃんと自分自身で調べろ。勉強にならんぞ('A`)y~~~

以下フロー

ログイン認証のためのHTTPリクエストが飛んでくる

アクションが呼ばれる

リクエストからユーザーとパスワードを使って認証処理を行う
 とりあえず成功したことにする

FormsAuthenticationTicket オブジェクトを生成する
 この中にログインに成功したユーザー名やチケットの有効期限や永続性などの情報が含まれる。

チケットを暗号化する
 FormsAuthentication.Encrypt(ticket);

暗号化したチケットをクッキーに入れて返す
 クッキー自体の有効期限は無制限でいい。たぶん('A`)。理由は、チケット本体に有効期限があるため
 FormsAuthentication.SetAuthCookie を呼び出せば楽なんだろうけど、ユーザー固有のデータが入れられない。
 調査不足かもしれんが('A`)

次に認証後のリクエストに関して

どっかしらのページのHTTPリクエストが飛んでくる

ASP.NET の基底の認証処理がよばれる
form認証が呼ばれる条件は、Web.config で<authentication mode="Forms"> が設定されていた場合のはず

クッキーに入っている暗号化されたチケットを複合化する

チケットの有効期限を確認する。チケットの永続性がONの場合は、有効期限が無視される

チケットのユーザー名と認証状態から、GenericPrincipal を生成し、HttpContext.User に設定する
 もし、有効期限が切れている、または複合化できなかった場合は、GenericPrincipal は空で作られる

コントローラーの処理へ。
 細かいところは調べてない('A`)


あとは、Controller.OnAuthorization が呼ばれるので、この中でクッキーに入っている暗号化されたチケットを複合化し
ユーザー固有のデータをつかってよろしくやればいい。必要であれば、HttpContext.User を入れ替えてもOK
スポンサーサイト
TOP
プロフィール

hssamurai

Author:hssamurai
FC2ブログへようこそ!

最新記事
最新コメント

最新トラックバック

月別アーカイブ
カテゴリ