2013-04-10 71 views
1

我在理解如何在使用表單身份驗證時訪問特定的用戶數據有些困難。表單身份驗證 - 訪問用戶數據

我已經爲用戶和管理員設置了表單身份驗證。

當用戶試圖登錄,這裏是運行代碼:

protected void buttonLogIn_Click(object sender, EventArgs e) 
    { 
     string email = TextBoxEmail.Text.Trim(); 
     string password = TextBoxPassword.Text.Trim(); 
     UserType userType = UserType.User; //temporary value 
     string firstName = string.Empty; 
     string lastName = string.Empty; 
     bool success = DBAppLayer.AuthenticateLogIn(email, password, out userType, out firstName, out lastName); 
     if (success == true) 
     { 
      Session.Add("email", email); 
      Session.Add("firstname", firstName); 
      Session.Add("lastname", lastName); 

      switch (userType) 
      { 
       case DBDataLayer.UserType.User: 
        FormsAuthenticationUtil.SetAuthCookie(email, "User,", false); 
        Response.Redirect("~/User/UserDashboard.aspx", false); 
        break; 
       case DBDataLayer.UserType.Admin: 
        FormsAuthenticationUtil.SetAuthCookie(email, "Admin", false); 
        Response.Redirect("~/AdminArea/AdminDashboard.aspx", false); 
        break; 
      } 
     } 
     else 
     { 
      labelError.Text = "Bad username/password."; 
     } 
    } 

這成功地重定向用戶到自己的儀表板。現在,當用戶位於/User/UserDashboard.aspx中時,我想顯示存儲在數據庫中的用戶個人資料信息,例如用戶的工作和年齡。

問題是,我不知道如何訪問UserDashboard.cs中的這個特定用戶的數據。我需要創建一個認證券嗎?如果是這樣,我會在登錄頁面執行此操作嗎?

任何鏈接或建議,將不勝感激。

+0

這完全取決於您的業務層。它是否需要您創建「身份驗證票證」?你不能直接通過用戶名/ ID訪問數據庫中的數據嗎? – 2013-04-10 22:23:28

回答

0

看起來您在致電FormsAuthenticationUtil.SetAuthCookie時,在創建身份驗證Cookie時將email作爲用戶ID傳遞。在您的用戶儀表板頁面中,User.Identity.Name字段會讓您返回相同的電子郵件地址。使用該值調用數據庫並獲取用戶的配置文件。

您還將電子郵件地址存儲在Session中,以便您可以從此處獲得該地址。