Разве я не могу установить сессию в файле класса? - PullRequest
0 голосов
/ 27 апреля 2010

Почему сессия является нулевой в этом, даже если я установил:

public class HelperClass
{
    public AtuhenticatedUser f_IsAuthenticated(bool _bRedirect)
    {
        HttpContext.Current.Session["yk"] = DAO.context.GetById<AtuhenticatedUser>(1);
        if (HttpContext.Current.Session["yk"] == null)
        {
            if (_bRedirect)
            {
                HttpContext.Current.Response.Redirect(ConfigurationManager.AppSettings["loginPage"] + "?msg=You have to login.");
            }

            return null;
        }

        return (AtuhenticatedUser)HttpContext.Current.Session["yk"];
    }
}

alt text

Ответы [ 3 ]

2 голосов
/ 27 апреля 2010

Обычно сеанс недоступен по запросу приложения на аутентификацию.

Сессия будет доступна после вызова OnAcquireRequestState. Вот события приложения последовательность вызовов

Также обратите внимание, что сессия будет доступна, только если целевой HttpHandler реализует IRequiresSessionState или IReadOnlySessionState, а AuhenticateRequest обычно вызывается для таких ресурсов, как .js или .jpg.

0 голосов
/ 27 апреля 2010

Когда я вызываю метод с этим кодом, я получаю сообщение об ошибке:

public partial class AddNews : System.Web.UI.Page
{
    private AtuhenticatedUser yk = (new HelperClass()).f_IsAuthenticated(true);
    protected void Page_Load(object sender, EventArgs e)
    {
        //
    }

Но когда я вызываю метод в функции Page_Load, он работает

public partial class AddNews : System.Web.UI.Page
{
    private AtuhenticatedUser yk =new AtuhenticatedUser();
    protected void Page_Load(object sender, EventArgs e)
    {
        yk = (new HelperClass()).f_IsAuthenticated(true);
    }

Я думаю, что Валера Колупаев прав;)

0 голосов
/ 27 апреля 2010

Просто выбросить это туда. Правильный способ ссылки на это:

System.Web.HttpContext.Current.Session

Или, если вы ссылались на эту сборку, HttpContext.Current.Session должен быть в порядке.

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