我目前正在构建一个新网站,我的客户可以在其中获得自己的子网域。 例如:
user1.mydomain.com
user2.mydomain.com
userDef.mydomain.com
...
该网站内置并运行于:IIS,asp.net C#
因此。因为有很多虚拟主机子域。我的代码中有一个函数连接到数据库并检查帐户的ID。
SELECT account_ID where account_subdomain = 'user##' LIMIT 1;
根据ID,主页和内容页面都会返回不同的数据/设计。
我的问题是,在哪个“事件”中我应该将我的函数放入会话中的accountID(“accountID”)?
因为我想在每个页面上都想要这个,我试图把它放在主页的page_load中,但这已经太晚了。我猜内容页面中的page_load是在masterpage中的page_load之前呈现的吗?
Soo,是否有任何放置我的功能的好地方,以便在网页上写完任何其他内容之前完成帐户ID检查?
谢谢! 磨砂
答案 0 :(得分:1)
一个选项是创建一个HttpModule并将代码放在那里,因为它会在实际页面开始处理之前到达页面请求。这样可以确保您的帐户ID在每个页面上都可用,并在您需要的任何事件之前设置。
如果你最终走这条路线,你需要将你的代码放在PostAcquireRequestState或PreRequestHandlerExecute事件中,以便你可以修改Session。
答案 1 :(得分:0)
尝试将代码放在母版页的Page_Init事件中。在母版页的Page_Load事件之前调用内容页面的Page_Load事件。但是,在Page_Init的情况下,这是相反的。