我正在尝试使用ASP.NET 4设置基本的表单身份验证。
我知道我的验证码(检查用户名和密码是否正确的代码)正在运行,因为如果用户输入无效信息,则ReturnLable会告诉他们。但是,如果他们输入正确的信息,则会将其重定向到受限制的页面,并显示403 - Forbidden错误。当我检查shell时:cookie路径没有写入cookie,即使我已将其添加到集合“Response.Cookies.Add(cookie);”
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;
}
答案 0 :(得分:5)
如果您没有设置cookie的过期时间,则会创建cookie 它不存储在用户的硬盘上。相反,cookie是 作为用户会话信息的一部分进行维护。当用户 关闭浏览器或如果会话超时,cookie就是 丢弃。
因此,cookie可以在浏览器中成功设置,活着并且很好,但在硬盘驱动器上的“cookies”文件夹中没有相应的文件。
答案 1 :(得分:0)
确保在IIS上禁用“启用匿名访问”并启用集成Windows安全性