创建表单身份验证网站

本文关键字:网站 身份验证 表单 创建 | 更新日期: 2023-09-27 18:20:45

我的网站与后台Umbraco的东西配合得很好,用户可以登录并更改内容等。我想做的是为正面网站创建一个登录注册部分,这样用户就可以留下评论等。我已经创建了登录注册页面,并尝试使用.NET Forms Authentication,但似乎什么都不起作用!当我添加cookie时,我会刷新,但它不在那里。这种方法在非Umbraco网站上效果很好,所以我认为我需要对Umbraco做一些不同的事情。

这是我的表单验证代码,它似乎没有添加cookie或SetAuthCookie:

Users Users = new Users();
        ENT_User User = Users.GetUser(this.txtLogin.Text, this.txtLoginPassword.Text);
        if (User.ID != Guid.Empty)
        {
            FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
              User.Email,
              DateTime.Now,
              DateTime.Now.AddDays(12),
              true,
              User.ID.ToString(),
              FormsAuthentication.FormsCookiePath);
            // Encrypt the ticket.
            string encTicket = FormsAuthentication.Encrypt(ticket);
            // Create the cookie.
            Response.Cookies.Add(new HttpCookie("LoginDetails", encTicket));

}

当我将鼠标悬停在Debug中的cookie上时,cookie就在那里,但当我刷新并再次完成该过程时,cookie不在那里。

有人知道问题出在哪里吗?

感谢

创建表单身份验证网站

您设置了票证的过期时间,但没有设置cookie本身的过期时间。尝试更改:

...
Response.Cookies.Add(new HttpCookie("LoginDetails", encTicket));

至:

...
var httpCookie = new HttpCookie("LoginDetails", encTicket);
httpCookie.Expires = DateTime.Now.AddDays(12);
Response.Cookies.Add(httpCookie);