[英]Session timeout in ASP.NET page added in MVC project for rendering SSRS report
我已經開發了帶角度的ASP.NET MVC應用程序。 稍后階段,我發現我的公司正在使用基於SSRS的報告解決方案來滿足所有報告要求,因此我添加了一個.aspx頁面以使用報告查看器控件顯示這些報告。
這里的問題是,我想檢查Session是否在.aspx頁中過期,並調用MVC的注銷操作方法,並將用戶重定向到MVC的登錄操作方法。
請幫助我如何實現這一目標?
謝謝,維傑
檢查會話對象是否存在於您的頁面中,如果您在會話中設置用戶名,則當會話過期時該用戶名將為null。 :
if (Session["UserName"] != null)
{
// Session has not expired
}
else
{
// Redirect To login since session expired
}
您可以使用web.config中的sessionState元素的超時屬性以分鍾為單位增加超時值。
默認情況下,ASP.NET使用cookie來識別哪些請求屬於特定會話。 如果cookie不可用,可以通過將會話標識符添加到URL來跟蹤會話。 要禁用cookie,請設置sessionState cookieless =“ true”。
<sessionState mode="StateServer" cookieless="false" timeout="120"/>
感謝您的建議,我嘗試添加此代碼段,但是問題是會話超時時,我希望我的aspx頁面自動從控制器調用Logout方法,以后我希望同一個aspx頁面應重定向到登錄頁面嗎?
我添加了此方案以使用aspx頁面的OnPreRender(EventArgs e)自動調用注銷控制器方法,並在內部添加了以下代碼片段
protected void base.OnPreRender(e){
Controls.Add(new LiteralControl(
String.Format("<meta http-equiv='refresh' content='{0};url={1}'>",
Session.Timeout * 60, "/main.mvc/logout?random=report")));
}
它正在像上面的代碼中那樣調用Logout方法,但是稍后我會收到錯誤頁面,其狀態類似“報告執行mt1vqsixnjiff145dvbe1o55已過期或找不到。(rsExecutionNotFound)”。 而是這個黃色的錯誤頁面,我想將用戶重定向到登錄控制器方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.