Создать сайт проверки подлинности с помощью форм - PullRequest
0 голосов
/ 18 января 2012

Мой сайт отлично работает с бэкендом Umbraco, чтобы пользователь мог войти в систему, изменить содержимое и т. Д. Я хотел бы создать раздел reg для входа в систему на фронтальном сайте, чтобы пользователи могли оставлять комментарии и т. Д. У меня естьсоздал мою страницу регистрации и попытался использовать .NET Forms Authentication, но, похоже, ничего не работает!Когда я добавляю печенье, я обновляюсь и его там нет.Этот метод отлично работает на сайтах, не принадлежащих Umbraco, поэтому я предполагаю, что мне нужно сделать что-то другое с Umbraco.

Вот мой код проверки подлинности с помощью форм, который, похоже, не добавляет куки или 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, куки там, но когда я обновляюсь и снова прохожу процесс, куки там нет.

У кого-нибудь есть идеи относительно проблемы?

Спасибо

1 Ответ

0 голосов
/ 19 января 2012

Вы установили срок действия для билета, но не для самого куки.Попробуйте изменить:

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

на:

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