2013-03-28 24 views

回答

1

通過添加一個複選框,登錄asp.net ..

,如果它檢查你必須創建通過驗證一個cookie,如果它未被選中,你必須把它放在會議

http://msdn.microsoft.com/en-us/library/system.web.sessionstate.httpsessionstate.aspx

另一種方式是實現一個cookie它是否被選中一樣,這不是持續性:

int timeout = rememberMe ? 525600 : 30; // Timeout in minutes, 525600 = 365 days. 
var ticket = new FormsAuthenticationTicket(userName, rememberMe, timeout); 
string encrypted = FormsAuthentication.Encrypt(ticket); 
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encrypted); 
cookie.Expires = System.DateTime.Now.AddMinutes(timeout); 
cookie.HttpOnly = true; // cookie not available in javascript. 
Response.Cookies.Add(cookie); 
1

首先,你需要在登錄按鈕點擊創建的Cookie如下,並在其中存儲登錄詳細

protected void btnLogin_Click(object sender, System.EventArgs e) 
{ 
    string username = txtUsername.Text; 
    string Password = txtPassword.Text; 

    // Create Cookie and Store the Login Detail in it if check box is checked 
    if ((CheckBox1.Checked == true)) { 
     HttpCookie mycookie = new HttpCookie("LoginDetail"); 
     mycookie.Values("Username") = txtUsername.Text.Trim(); 
     mycookie.Values("Password") = txtPassword.Text.Trim(); 
     mycookie.Expires = System.DateTime.Now.AddDays(1); 

     Response.Cookies.Add(mycookie); 
    }  
    Response.Redirect("Default2.aspx"); 
} 

然後檢查cookie存在(被記得我選中),如果是填細節如下 -

protected void Page_Load(object sender, System.EventArgs e) 
{ 
    //check if cookie exist then login page from 
    if ((Response.Cookies("LoginDetail") != null)) {  
     //Username 
     string uname =      Response.Cookies("LoginDetail").Values("Username").ToString(); 
     string pass = Response.Cookies("LoginDetail").Values("Username").ToString(); 


    Response.Redirect("Default2.aspx"); 
    } 

} 
+0

我得到的字符串UNAME未設置爲實例的錯誤對象引用我一個物體我該做什麼? – User7291 2013-10-04 13:44:01

+2

你真的會在cookie中存儲用戶名和密碼,我認爲這是一個壞主意。 – Aki 2016-01-21 15:15:54