我有一個Web窗體應用程序,我測試並在本地運行良好。 當我將它上傳到託管我的網站的Web服務器時,它通常只是註銷用戶(他們會被重定向到Account/Login.aspx頁面)。.net web窗體應用程序不斷註銷用戶
它不會在應用程序中產生錯誤,所以我不知道如何正確調試它,但我認爲它發生在頁面加載事件期間,因爲用戶在進行一些更改後有時會退出應用程序(並非總是) ,但變化保持不變。
我認爲由於某種原因,我的會話變量,保持用戶的登錄被重置。
如果你有一個想法或者在某個方向指向我什麼以及如何調查此問題,我將非常感激。
這是我的代碼,在我的網站Master.cs在頁面加載運行,也許它可以幫助:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Session["UserId"] == null)
{
Response.Redirect("~/Account/login.aspx");
}
if (!Session["Role"].ToString().Equals("Coach"))
{
if (Session["Role"].ToString().Equals("Administrator"))
Response.Redirect("~/AdminForm/AdminHome.aspx");
if (Session["Role"].ToString().Equals("User"))
Response.Redirect("~/Form/Progress.aspx");
}
}
}
謝謝!
聽起來像會話超時問題。可能想看看你的web.config文件和/或它所託管服務器的IIS配置。 – user2366842
不要使用會話進行身份驗證....這是非常不安全的,您會遇到類似這樣的問題,因爲IIS可以在感覺(丟失會話)時回收您的工作進程。你應該改用FormsAuthentication標記,並使用基於角色的訪問來控制授權 –
Erik,謝謝你的回答。我將Session的身份驗證更改爲cookie,但仍有時會中斷。它不會將我重定向到登錄屏幕,而是具有Cookie的角色的主頁。例如,管理主頁是「AdminHome」。我點擊「AddUser」頁面,我有時會被重定向到「AdminHome」,但並非總是如此。你有一個想法是什麼可能導致它? – Dina