2011-08-11 20 views
0

我想安装使用ASP.NET 4Asp.Net 4 Response.Cookies.Add不添加饼干到用户机器

我知道我的验证代码(代码,如果用户名,检查基本窗体身份验证和密码是正确的)正在工作,因为如果用户输入无效信息后ReturnLable告诉他们。但是,如果他们输入了正确的信息,则会将其重定向到受限制的页面,并显示403 - 禁止的错误。当我检查了壳:虽然我把它添加到集合中没有Cookie已写入甚至Cookie路径“Response.Cookies.Add(饼干);”

protected void Submit_Click(object sender, EventArgs e) 
{ 
    Email.Text = Email.Text.Trim(); 
    Password.Text = Password.Text.Trim(); 
    if (IsValid(Email.Text, Password.Text)) //user exists 
    { 
     FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
      1, 
      Email.Text, 
      DateTime.Now, 
      DateTime.Now.AddMinutes(50), 
      RememberMe.Checked, 
      "user", 
      FormsAuthentication.FormsCookiePath); 
     string hashCookies = FormsAuthentication.Encrypt(ticket); 
     HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hashCookies); 

     Response.Cookies.Add(cookie); 
} 
    else 
    { 
     ReturnLable.Text = "<font color=red> Username/Password Incorrect Please Try Again </font>"; 
     ReturnLable.Visible = true; 
    } 

回答

5

this MSDN article

如果不设置cookie的有效期,创建Cookie,但 它不是存储在用户的硬盘上。相反,cookie是作为用户会话信息的一部分维护的 。当用户 关闭浏览器或者如果会话超时,则丢弃该cookie为 。

因此,一个cookie可以在浏览器中成功设置,活着并且良好,但是在硬盘上的“cookies”文件夹中没有相应的文件。

+0

,你是男人! – user889829

+1

很高兴这解决了这个问题!如果您单击此答案旁边的复选标记形状的图像,它将“接受”它作为解决问题的答案。接受答案是很好的stackoverflow-citizenship。 – mikemanne

+0

+1作为最佳答案 –

0

确保启用匿名访问IIS和禁用集成的Windows安全启用

+0

禁用匿名访问栏访问所有页面,我希望用户能够看到他们适合的大部分我限制acsess仅限于我在我的web.config文件中做的某些目录。无论哪种方式,当我写一个cookie与Response.Cookies.Add我希望看到它在我的外壳:cookies文件夹,现在我没有看到 – user889829

+0

谢谢你回答,问题是,我没有设置到期日期在解决问题的Cookie – user889829