-2

我的应用程序将服务于多个站点,我将为系统中的所有站点定义相同的主目录。假设这是一个具有用户、角色等的业务应用程序,并且每个站点都是为另一个客户服务的。

角色定义在数据库中,所以我正在创建一个带有票证的表单身份验证 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 回答