我在logon.aspx.cs
中創建了一些cookie,該代碼隱藏了thatc從數據讀取器讀取幷包含來自數據庫的用戶信息。我無法在主頁或其他頁面上讀取cookie
HttpCookie UID = new HttpCookie("ID");
Response.Cookies["UID"].Value = Recordset[0].ToString();
Response.Cookies.Add(UID);
HttpCookie UName = new HttpCookie("Username");
Response.Cookies["Username"].Value = Recordset[3].ToString();
Response.Cookies.Add(UName);
HttpCookie Pass = new HttpCookie("Pass");
Response.Cookies["Pass"].Value = Recordset[4].ToString();
Response.Cookies.Add(Pass);
HttpCookie Admins = new HttpCookie("Admin");
Response.Cookies["Admin"].Value = Recordset[12].ToString();
Response.Cookies.Add(Admins);
HttpCookie Mails = new HttpCookie("Emails");
Response.Cookies["Emails"].Value = Recordset[9].ToString();
Response.Cookies.Add(Mails);
Response.Redirect("../default.aspx");
當我跟蹤代碼每一件事情是好的,數據由餅乾舉行。
現在,當我在母版頁或其他內容頁面閱讀這些cookie時,我不能。
在其它世界的餅乾不是他們的名字(或鑰匙)
if (Request.Cookies["Username"] !=null)
{
lblWelcomeUser.Text = Server.HtmlEncode(Request.Cookies["Username"].Value);
pnlUsersNavigation.Visible = true;
LoginMenu.Visible = false;
RegisterMenu.Visible = false;
lblWelcomeUser.Text = Server.HtmlEncode(Request.Cookies["Username"].Value);
//lblWelcomeUser.Text = Request.Cookies["Username"].Value.ToString();
if (Request.Cookies["Admin"].Value.ToString()=="True")
{
lblWelcomeUser.Text = "WELCOME ADMIN";
// Show Menu that is only for Admin
}
哪裏是在這段代碼的問題認識?
請注意[中間人](http://en.wikipedia.org/wiki/Man-in-the-middle_attack)攻擊。 –
@ChrisGessler:好的,那麼有什麼方法是有用的?你是否指ASP.NET的成員?如果我使用它,我可以更改其控件的設計嗎?例如登錄控制。我可以將其簡單設計更改爲我的自定義設計?我希望能夠清楚地說出我的想法! –
cookie值不安全(即加密),所以如果我想要,我可以通過編輯cookie並重新提交我的請求來更改我的管理員狀態。它還會讓用戶陷入各種形式的「會話劫持」。 –