2012-10-07 5 views
0
public class BaseController : Controller 
{ 
    public string UserId { set; get; } 
    public string AccessToken { set; get; } 

    private readonly IUnitOfWork _unit; 

    public BaseController(IUnitOfWork unit) 
    { 
     _unit = unit; 
    } 

    protected override void OnActionExecuting(ActionExecutingContext filterContext) 
    { 
     UserId = Session["_UserId"] as string; 
     AccessToken = Session["_AccessToken"] as string; 
     // ...... 
    } 
} 

AccessToken이 값을 반환하더라도. UserId는 null으로 표시되지만 디버그 할 수는 있지만 Session 개체의 값이 있음을 알 수 있습니다.값을 볼 수는 있지만 세션이 null을 반환 함

나는 세션을 설정 M :

 Session.Add("_UserId", user.Id); 
     Session.Add("_AccessToken", user.AccessToken); 

일 s는 무엇입니까?

답변

3
UserId = Session["_UserId"] as string; 

키 "_UserId"의 값처럼 보이는 것은 문자열이 아닌 - 따라서 당신이 결과로 null를 얻을.

+1

그게 맞습니까? 사악한!! 나를 시도하자 – DarthVader

+0

:) 맞아 맞아. 범인, 비록 id가 int 인 경우에도 왜 문자열에 캐스팅하지 않습니다. 나는 그것을 다소 기대했다. – DarthVader

관련 문제