-2

私のアプリケーションは複数のサイトにサービスを提供し、システム内のすべてのサイトに同じホーム ディレクトリを定義します。これは、ユーザー、ロールなどを含むビジネス アプリケーションであり、各サイトは別の顧客用であると想定します。

ロールの定義は DB にあるため、チケットを使用してフォーム認証 Cookie を作成し、その Cookie に次の名前を付けています。

FormsAuthentication.FormsCookieName + HttpContext.Current.Session["ApplicationName"] 

しかし、Application_AuthenticateRequest でこの Cookie をデコードしようとすると、アプリケーションはセッション状態の準備ができていないというエラーをスローします。

「ApplicationName」データを別の方法で保存できます。しかし、私は最初から何か間違ったことをしているかもしれないと感じています。

このシナリオのパターンまたは何かを提案できますか?

4

1 に答える 1

0

ASP.NET ライフ サイクル (Application_AuthenticateRequest) のその段階では、セッション状態を使用できません。まだ利用できません。

AcquireRequestState ステップで利用できるはずです。その時点で、現在のリクエストのセッション状態が取得されます。

ライフサイクル イベントについては、こちらをご覧ください。

http://www.devproconnections.com/article/aspnet2/understanding-the-asp-net-lifecycle-123441

于 2013-01-22T07:57:10.227 に答える