今天有個需求是希望在Request發出後到所有的Controllers之前
希望能先取得Session內容再決定要送到哪個Controller
於是在 Global.asax內寫了以下程式碼
protected void Application_BeginRequest(object sender, EventArgs e)
{
UserName = Session["UName"] == null ? "unknow" : Session["UName"].ToString();
}
結果發現在Application_BeginRequest存取Session會產生Exception
參考這篇推測應該是在Application_BeginRequest階段Session並未產生所以發生錯誤
將Application_BeginRequest改為Application_AcquireRequestState後就可以順利存取Session了
protected void Application_AcquireRequestState(object sender, EventArgs e)
{
UserName = Session["UName"] == null ? "unknow" : Session["UName"].ToString();
}