【问题标题】:Session variable set in home controller not available in other controller + C#家庭控制器中设置的会话变量在其他控制器中不可用 + C#
【发布时间】:2019-01-18 15:07:26
【问题描述】:

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

我有一个使用 Angular 4.0 的 MVC C# 应用程序。 我能够将我的会话变量保存在我的 Home 控制器中,但是当我尝试在另一个控制器中访问它(对于另一个页面)时,它返回 null(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 存储一个表,该表显示用户为每个页面添加、更新或删除的授权,并在任何其他控制器中检索相同的内容。

【问题讨论】:

  • 帧挑战:您应该为此使用不记名令牌

标签: c# session session-variables


【解决方案1】:

尝试像这样转换会话变量:

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

【讨论】:

  • 当我到达其他控制器时会话变量消失了。所以这没有帮助。我认为这与 Angular 处理会话的方式有关。
猜你喜欢
  • 1970-01-01
  • 2017-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-12
  • 1970-01-01
  • 2018-03-29
  • 2016-03-30
相关资源
最近更新 更多