ASP MVC 2:如何重置用户授权?

时间:2011-07-08 06:53:00

标签: c# asp.net-mvc-2 redirect authorization

我需要一个全局二进制(Linq.Binary)变量(用户参考),可用于所有控制器,在授权过程中填写。我决定使用 TempData 。 (可能是,有更合适的方式吗?)。我不需要MVC Membership系统,只需要一个变量。

当我关闭网站,然后再次输入时,我的 TempData 为空,我需要重新启动用户授权。怎么做?

  • [授权] 无效 - 用户已获得授权。
  • 我尝试在关键控制器中插入此代码:
  

如果   (!TempData.ContainsKey( “CustomerRef”))   FormsAuthentication.RedirectToLoginPage();

但没有任何反应。

  • 我尝试重载 AuthoriseAttribute ,但看起来无法查看 AuthoriseAttribute 类中的 TempData
  • 我无法将此变量存储在Cookie中 - 这很关键。
  • 我不想把它存放在数据库的某个地方。

对我来说最好的方法是以某种方式重置用户授权,如果TempData为空,但我不知道,怎么做。或者,我可能正在重新发明轮子? :)

P.S。:我在获取数据时使用 TempData.Peek(),因此变量没有闪烁。

1 个答案:

答案 0 :(得分:0)

我正在努力理解你的问题,但对我来说这有点模糊。所以当你登录时你不想保留一些额外的关键用户信息吗?

我有一个类似的情况,我做的是:

  • 使用static Dictionary<String,someClassWithExtraValues>
  • 创建一个静态类
  • 在身份验证期间,我会使用User.Identity.Name作为关键字向字典添加新值。这样我总能达到登录用户的值。
  • 当用户退出时,我会删除他的值。

您可以在Cookie中使用它,即使它很关键,一旦手动更改FormsAuthentication cookie它就会变得无效。 Ofc仍有cookie偷窃等。