我需要一个全局二进制(Linq.Binary)变量(用户参考),可用于所有控制器,在授权过程中填写。我决定使用 TempData 。 (可能是,有更合适的方式吗?)。我不需要MVC Membership系统,只需要一个变量。
当我关闭网站,然后再次输入时,我的 TempData 为空,我需要重新启动用户授权。怎么做?
如果 (!TempData.ContainsKey( “CustomerRef”)) FormsAuthentication.RedirectToLoginPage();
但没有任何反应。
对我来说最好的方法是以某种方式重置用户授权,如果TempData为空,但我不知道,怎么做。或者,我可能正在重新发明轮子? :)
P.S。:我在获取数据时使用 TempData.Peek(),因此变量没有闪烁。
答案 0 :(得分:0)
我正在努力理解你的问题,但对我来说这有点模糊。所以当你登录时你不想保留一些额外的关键用户信息吗?
我有一个类似的情况,我做的是:
static Dictionary<String,someClassWithExtraValues>
User.Identity.Name
作为关键字向字典添加新值。这样我总能达到登录用户的值。 您可以在Cookie中使用它,即使它很关键,一旦手动更改FormsAuthentication cookie它就会变得无效。 Ofc仍有cookie偷窃等。