Установка времени ожидания файла cookie для проверки подлинности на основе роли в ASP.NET - PullRequest
9 голосов
/ 18 мая 2010

Я хочу разрешить администраторам входить в систему дольше обычных пользователей. Я не вижу ловушки для установки таймаута cookie программно или на основе ролей. Возможно ли это в ASP с использованием проверки подлинности с помощью форм?

Ответы [ 2 ]

8 голосов
/ 18 мая 2010

Да, вы могли бы сделать это. Вам нужно будет сгенерировать тикет аутентификации вручную, а не дать платформе автоматически сгенерировать его.

В зависимости от роли пользователя, срок действия, который вы назначаете для заявки.

Из этого туториала Вы узнаете, как создать билет вручную.

7 голосов
/ 18 мая 2010

SNIPPET:

     switch Role: 
     Case A: VARIABLE X = Y; BREAK;
     CASE B: VARIABLE X = Y2; BREAK;
     ..

     End switch

     FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
        1, // Ticket version
        Username.Value, // Username associated with ticket
        DateTime.Now, // Date/time issued
        DateTime.Now.AddMinutes(VARIABLE X), // Date/time to expire
        true, // "true" for a persistent user cookie
        reader.GetString(0), // User-data, in this case the roles
        FormsAuthentication.FormsCookiePath);// Path cookie valid for

     // Encrypt the cookie using the machine key for secure transport
     string hash = FormsAuthentication.Encrypt(ticket);
     HttpCookie cookie = new HttpCookie(
        FormsAuthentication.FormsCookieName, // Name of auth cookie
        hash); // Hashed ticket

     // Set the cookie's expiration time to the tickets expiration time
     if (ticket.IsPersistent) cookie.Expires = ticket.Expiration;

     Response.Cookies.Add(cookie);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...