2017-01-13 3 views
0

Событие в моем global.asax вызывает метод в классе, который возвращает целое число. Я хотел бы сохранить это целое число в переменной сеанса в global.asax, которую позже я хотел бы использовать в контроллере. Я попробовал HttpContext.Current.Session.Add, но он дает ссылку на объект не для экземпляра объекта. Я не уверен, как решить эту проблему, и любая помощь очень ценится.Session is null

Вот пример кода

public void WSFederationAuthenticationModule_SecurityTokenValidated(object sender, SecurityTokenValidatedEventArgs e) 
    { 
     int ID = new StudentClass.GetStudentID(e.ClaimsPrincipal); 
     //Im trying to store this ID in a session 
     var ru = GetReturnUrl(Request); 

     if (!string.IsNullOrEmpty(ru)) 
     { 
      HttpContext.Current.Response.Redirect(ru); 
     } 

     e.Cancel = true; 
    } 

Спасибо.

+0

привет, в каком способе вы устанавливаете этот метод? –

+0

, пожалуйста, покажите мне код файла global.asax. Вы должны поместить его метод session_start, пожалуйста, попробуйте это –

+0

Под WSFederationAuthenticationModule securitytokenvalidated событие в глобальном файле asax. – USK

ответ

0
Try this was as mention by me in my comment . You can access ClaimPrincipal object in app_start/session_start event and then stored it .I hope it helps 

public class Global : HttpApplication 
{ 
    void Application_Start(object sender, EventArgs e) 
    { 
     // Code that runs on application startup 


    } 
    void Session_Start(object sender, EventArgs e) 
    { 
     -- here you can get the StudentID and then store it. 
     var t = ClaimsPrincipal.Current; 
     Session["StudentId"] = "Yash"; 
    } 

}