2015-11-12 2 views
0

Я новичок в C# от ColdFusion, и я пытаюсь реплицировать приложение, которое я разработал в CF, чтобы помочь мне понять язык.Переменные сеанса C#/переменные приложения в целом

Мое приложение регистрирует пользователя и ищет и покупает виртуальные объекты.

В моем приложении CF, когда пользователь входит в систему, я устанавливаю переменную сеанса с именем loggedIn, которая равна true.

Каждый запрос search/buy может быть выполнен только в том случае, если эта переменная сеанса true. Если запрос возвращает ответ с истекшим сеансом от хоста, я обновляю session.loggedIn = false. Затем выполняется новый запрос на вход.

Как бы это сделать на C#, так что мне не нужно передавать его и возвращать из каждого класса/метода, с которым он взаимодействует?

В принципе, в CF я могу установить и получить доступ к нему из любого места приложения, но это возможно в C#?

+0

Этот вопрос относится только к ASP.NET WebForms или ASP.NET MVC? –

+0

Я бы предположил, что вы не пытаетесь скопировать код из 'ColdFusion' в' C#'. Шаблоны будут разными, и это может быть не лучший подход на другом языке. Я предлагаю вам взглянуть на структуру Identity 2, это будет обрабатывать то, что вы хотите, это основа для аутентификации и идентификации пользователя. –

ответ

0

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

Затем вы shoul переместите соответствующие методы внутри этого класса, поэтому они всегда могут выполняться, поскольку они существуют только в пределах активного сеанса.

0

Если вы просто хотите установить значение сеанса, вы можете использовать свойство Session, которое доступно для WebForm или Controller (неясно, используете ли вы WebForms или MVC).

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

Запись

Session["loggedIn"] = true;

Чтение

bool isLoggedIn = Convert.ToBoolean(Session["loggedIn"]);

Я предлагаю вам создать свойство на вашем WebForm/Controlle, чтобы обернуть эту функцию, например,

public bool UserIsLoggedIn 
{ 
    get 
    { 
     if (Session["loggedIn"] != null) 
     { 
      return Convert.ToBoolean(Session["loggedIn"]); 
     } 

     return false; 
    } 
    set 
    { 
     Session["loggedIn"] = value; 
    } 
} 
Смежные вопросы