Проверка подлинности формы выводит меня из системы - PullRequest
1 голос
/ 12 октября 2011

Я использую проверку подлинности формы для приложения, и по истечении времени ожидания формы приложение регистрирует пользователя на странице входа.

Но когда я снова ввожу свои учетные данные, приложение не впускает пользователя. Когда я пробую его в другом браузере, оно работает нормально. Я подумал, что могут быть проблемы с кэшированием или cookie, поэтому я очистил кеш и cookie из браузера. Но это все еще не работает.

Я боюсь, что что-то может меня не так в моем коде.

Может кто-нибудь проверить?

Большое спасибо

protected void ManageRoles(string userid, string role)
    {
        FormsAuthentication.Initialize();

        FormsAuthenticationTicket Authticket = new FormsAuthenticationTicket(1, userid, DateTime.Now, DateTime.Now.AddMinutes(180), true, role, FormsAuthentication.FormsCookieName);
        string hash = FormsAuthentication.Encrypt(Authticket);
        HttpCookie Authcookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash);

        if (Authticket.IsPersistent)
        {
            Authcookie.Expires = Authticket.Expiration;
            Response.Cookies.Add(Authcookie);
        }               

    }

Global.asax

protected void Application_AuthenticateRequest(object sender, EventArgs e)
        {
            if (HttpContext.Current.User != null)
            {
                if (HttpContext.Current.User.Identity.IsAuthenticated)
                {
                    if (HttpContext.Current.User.Identity is FormsIdentity)
                    {
                        FormsIdentity id = (FormsIdentity)HttpContext.Current.User.Identity;
                        FormsAuthenticationTicket Authticket = id.Ticket;
                        string userData = Authticket.UserData;
                        string[] roles = userData.Split(',');
                        HttpContext.Current.User = new GenericPrincipal(id, roles);
                    }
                }
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...