2011-03-09 37 views
0

大家好。我是第四年的大學生,我是新來的asp,我目前正在爲我的OJT開發一個網站。我爲我的網站創建了一個登錄表單,現在我對如何處理這個問題感到困惑。我需要確定用戶是否已經登錄或註銷.. 由於用戶輸入了確切的用戶名和密碼,它將轉到這行代碼中,如果用戶有蜜蜂註銷,它將標識。確定用戶是否登錄或註銷

 HttpCookie cookie = new HttpCookie("isLog"); 
     cookie.Value = "1"; 
     DateTime dtNow = DateTime.Now; 
     TimeSpan tsMinute = new TimeSpan(1, 1, 0, 0); 
     cookie.Expires = dtNow + tsMinute; 
     Response.Cookies.Add(cookie); 

     Response.Redirect("manageService.aspx"); 

而且我有這個功能來確定用戶是否已經登錄或註銷..

protected Boolean isLog() 
{ 
    //String strCookieName = Request.QueryString["cookie"].ToString(); 
    //Grab the cookie 
    HttpCookie cookie = Request.Cookies["isLog"]; 
    String tmp = cookie.Value.ToString(); 
    return (tmp != null); 
} 

現在,我在這裏的問題是,即使我輸入正確的用戶名和密碼重新加載頁面後,它仍然會詢問用戶名和密碼(將我發送到登錄頁面)。我已經爲「isLog」cookie設置了一個值,但它仍然返回一個錯誤的信息。 請賜教這個東西..謝謝你這麼多..

任何幫助,高度讚賞,

-nonon

+0

你爲什麼不使用內置的成員?然後就像'User.Identity.IsAuthenticated'一樣簡單' – balexandre 2011-03-09 08:27:15

回答

0

的問題是,當你得到的cookie值

cookie.Value.ToString() 

你總是得到一個字符串參考,所以tmp永遠不會爲空。

你應該做的是要麼返回(tmp == "1")

.Value是一個字符串屬性(它返回一個字符串),所以你不必的ToString()它。

另外請注意,如果cookie不存在,Request.Cookies [「COOKIETHATDOESNTEXIST」]不會拋出異常。然而,調用不存在的.Value屬性將拋出異常。

先嚐試或者只是簡單的檢查空:

HttpCookie cookie = Request.Cookies["isLog"]; 

bool isLoggedIn = false; 
if(cookie != null && cookie.Value == "1") 
{ 
    isLoggedIn = true; 
} 
return isLoggedIn; 
+0

哎呀!謝謝The_Butcher。 :-) – Nonon 2011-03-11 04:19:50

+0

酷np!如果這是正確的答案,只需點擊此問題旁邊的勾號即可 – 2011-03-11 08:02:51