2012-05-15 74 views
0

嘿,我正在創建一個論壇,用戶可以在論壇中登錄和張貼ocmments,我想用戶名作爲會話變量,所以我可以得到它時,他們發表評論,並在用戶名和數據庫中插入和還要顯示一個hello用戶消息。會話變量爲用戶名

下面是我的登錄代碼:

protected void Button1_Click(object sender, EventArgs e) 
{ 
    DataSet ds = new DataSet(); 
    localhost.Service1 myws = new localhost.Service1(); 
    ds = myws.GetUsers(); 
    foreach (DataRow row in ds.Tables[0].Rows) 
     if (txtusername.Text == System.Convert.ToString(row["username"]) && 
     txtpassword.Text == System.Convert.ToString(row["password"])) 
     { 
      System.Web.Security.FormsAuthentication.RedirectFromLoginPage(txtusername.Text, false); 
     } 
     else 
      Label3.Text = "Invalid Username/Password"; 
} 

難道我在這裏聲明會話變量?

像:

Session["username"] = "username"; 

而且不知道什麼類型從數據庫獲取價值的用戶名

感謝

回答

0

你並不需要使用一個會話。一旦您調用FormsAuthentication.RedirectFromLoginPage方法,在目標頁面內部,您可以使用User.Identity.Name通過此方法發出的身份驗證Cookie訪問當前連接的用戶。

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (User.Identity.IsAuthenticated) 
    { 
     string username = User.Identity.Name; 
     // ... 
    } 
} 

要了解更多有關如何窗體身份驗證工作在ASP.NET我請你閱讀following article

+0

好吧,我可以完全知道用戶名。謝謝 – user1389384

0

您已經在使用表單認證(FormsAuthentication.RedirectFromLoginPage(txtusername.Text, false)),這非常棒。因此,您不需要存儲用戶名會話,因爲它已經通過User.Identity.Name可用,正如Darin指出的那樣。

我已經寫在窗體身份驗證兩個教程可能對您有用:

此外,可以考慮使用會員。成員資格是內置於ASP.NET中的一個子系統,用於處理用戶帳戶並提供用於創建帳戶,刪除帳戶等的API。簡而言之,您不必親自編寫所有代碼。使用登錄Web控件,創建新帳戶,簽入用戶,重置密碼等等都非常簡單,並且涉及零到幾個代碼。欲瞭解更多信息,請參閱我的Membership tutorials

快樂編程!

+0

謝謝,但我應該提到我已被嚴格告知,我只被允許使用Web服務來訪問和查詢數據庫.. – user1389384

+0

這並不排除你使用Membership。 –