Администраторы должны перезагрузить страницу, чтобы увидеть функции администратора (вопрос о расположении файлов cookie) - PullRequest
1 голос
/ 27 июля 2010

Я создаю собственный файл cookie и перегружаю класс Iprincipal и все такое хорошее. Мой файл cookie работает правильно, и я могу успешно получить роли пользователей, но администраторы должны перезагрузить страницу по умолчанию после входа в систему, чтобы увидеть кнопку только для администратора. Как только они посещают новую страницу на моем сайте и возвращаются на страницу по умолчанию, кнопка там есть.

Я где-то читал, что cookie создается последним и имеет отношение к ответу на HTTP. TBH, я новичок в этом и не понимаю, как именно это работает, но я вижу, как это влияет на мою программу.

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

Спасибо за помощь, и я был бы более чем рад уточнить.

Ответы [ 2 ]

2 голосов
/ 27 июля 2010

Вы можете попробовать установить cookie и перенаправить. это несколько стандартная практика при входе в систему. перенаправление вызовет загрузку новой страницы, во время которой ваш куки будет отправлен на сервер.

1 голос
/ 27 июля 2010

Когда я запускал ASP.NET, я часто сталкивался с подобной проблемой. Проблема была в том, что я не связал данные должным образом ПОСЛЕ нажатия кнопки:

Неверный код:

void Page_Load(object o, EventArgs e)
{
    _adminControls.Visibile = IsAdmin();
}

void Login_Clicked(object o, EventArgs e)
{
    DoLogin();
}

Способ исправить это:

void Page_Load(object o, EventArgs e)
{
    // Move binding code, etc to a BindData function and only call it if !IsPostBack
    if (!IsPostBack)
    {
        BindData();
    }
}

void BindData()
{
    _adminControls.Visibile = IsAdmin();
}

void Login_Clicked(object o, EventArgs e)
{
    DoLogin();
    BindData(); // Call BindData function after login
}

Возможно, это не то, что вы видите, но симптомы похожи.

...