在主控制器中设置的会话变量在其他控制器+ C#中不可用

时间:2019-01-17 20:56:07

标签: c# session session-variables

我的应用程序使用C#+ Angular 4.0。 我需要在会话变量中设置值以保存用户角色,这是在Home Controller中完成的,然后需要在另一个控制器中访问此会话变量。这样做时,会话变量中为空。

我有一个使用Angular 4.0的MVC C#应用程序。 我可以将会话变量保存在Home控制器中,但是当我尝试在另一个控制器(用于另一个页面)中访问它时,它返回null(空异常),并且在其他任何地方都无法使用它。 我想念什么?

//Home Controller
DataSet dsGroupPermission = new DataSet();

dsGroupPermission = authorizeUser(strGroupResult);

if (dsGroupPermission.Tables.Count > 0 && 
    sGroupPermission.Tables[0].Rows.Count > 0)
{
    System.Web.HttpContext.Current.Session["Dataset"] = dsGroupPermission;
    strUserStatus = "ValidUser";
}

//Another Controller
DataSet dspermission = new DataSet();
dspermission = System.Web.HttpContext.Current.Session["Dataset"];

我希望上面的Session变量Dataset可以存储一个表,该表显示了用户授权以添加,更新或删除每个页面,并在其他任何控制器中取回该页面。

1 个答案:

答案 0 :(得分:0)

尝试将会话变量转换为:

//Another Controller
DataSet dspermission = new DataSet();
dspermission = System.Web.HttpContext.Current.Session["Dataset"] as DataSet;