Хранение большего количества информационного использования FormsAuthentication. SetAuthCookie

       $("#myframe").load(function() {
            alert("loaded");
        });
43
задан Pure.Krome 15 October 2011 в 22:32
поделиться

3 ответа

Вы можете добавить пользовательские данные в FormsAuthenticationTicket, а затем самостоятельно сгенерировать cookie.

В документации MSDN для FormsAuthenticationTicket есть пример.

EDIT

Обратите внимание, что при создании заявки вам необходимо установить тайм-аут, который, как правило, должен быть таким же, как и значение, настроенное в web.config. К сожалению, в Framework 3.5 или более ранней версии класс FormsAuthentication не раскрывает этот тайм-аут публично. Для обходного пути используйте один из методов, описанных в ответе на этот элемент обратной связи подключения .

ОБНОВЛЕНИЕ

К сожалению, элемента обратной связи подключения больше нет. Хотелось бы, чтобы вы кратко описали, каковы были методы.

Да, жаль, что Microsoft отказалась от исторических элементов Connect. IIRC,

48
ответ дан 26 November 2019 в 22:59
поделиться

Передайте этот идентификатор пользователя в качестве параметра userName.

FormsAuthentication.SetAuthCookie(userId, True)

Как вы защищаете свои билеты аутентификации?

1
ответ дан 26 November 2019 в 22:59
поделиться

Вы можете поместить в файл cookie аутентификации все, что захотите, если это будет вам полезно. Тем не менее, если вы размещаете конфиденциальную информацию, вам следует, по крайней мере, зашифровать ее, но я бы не рекомендовал размещать там конфиденциальную информацию. Вы можете сделать что-то вроде:

Forms.SetAuthCookie (UserName + "|" + UserId, true);

Затем, когда вам понадобится имя пользователя или идентификатор пользователя, они будут там. Просто загрузите cookie и проанализируйте нужные вам значения.

Опять же, Я бы не советовал делать это, тем более, что я представил это выше . Тем не менее, это возможно. Вы должны создать методы доступа для возврата данных:

public int CurrentUserId
{
    get
    {
        int userId = 0;

        if (HttpContext.Current.Request.IsAuthenticated)
        {
            userId = Convert.ToInt32(HttpContext.Current.User.Identity.Name.Split('|')[1]);
        }

        return userId;
    }
}

public string CurrentUserName
{
    get
    {
        string userName = string.Empty;

        if (HttpContext.Current.Request.IsAuthenticated)
        {
            userName = HttpContext.Current.User.Identity.Name.Split('|')[0];
        }

        return userName;
    }
}
15
ответ дан 26 November 2019 в 22:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: