我正在编写一个多品牌的应用程序(即根据它们的定位,它显示不同用户的不同外观)。
最终用户使用查询字符串来设置客户端ID,例如
mysite?clientID={GUID}
我要做的是设置执行以下检查
If Session["ClientID"] is null or empty
if querystring has ClientID
Set Session[ClientID] to QueryString[ClientID]
else if the user has their clientID set in the db
Set Session[ClientID] to DB Value
else
Use default ClientID
End
检查我可以轻松解决的各种项目的代码,我现在难以理解的是“推”这个代码的位置,以便检查每个页面的负载。更具体地说,如果我应该使用应用程序生命周期事件挂钩,哪一个最适合这样,所以我可以在呈现任何页面之前访问Membership对象,QueryString和Session对象。
答案 0 :(得分:1)
您可以在global.asax中使用Application_BeginRequest
事件,或者您可以将它放在MasterPage的代码隐藏中(如果您有),或者如果您的页面继承,则将其放在BasePage文件的代码隐藏中从一个。
答案 1 :(得分:1)
你的global.asax(在主目录中)是最好的地方。
protected internal void Application_BeginRequest(object sender, EventArgs e)
{
// your code
}
了解详情
答案 2 :(得分:1)
这是请求生命周期(等等):
详细说明:http://msdn.microsoft.com/en-us/library/system.web.httpapplication.aspx
所以我认为最符合您需求的活动是:
<强> Application_PostAuthorizeRequest 强>
MSDN说明
在授权当前请求的用户时发生。
源:
http://msdn.microsoft.com/en-us/library/system.web.httpapplication.postauthorizerequest.aspx