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

本文关键字:何重置 用户 授权 MVC ASP | 更新日期: 2023-09-27 18:01:36

我需要一个全局Binary (Linq.Binary)变量(用户引用),可用于所有控制器,这是在授权过程中填写的。我决定使用TempData。(也许,还有更合适的方式?)我不需要MVC成员系统,只有一个变量。

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

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

如果(! TempData.ContainsKey("CustomerRef"))

FormsAuthentication.RedirectToLoginPage ();

但是什么也没发生。

  • 我试图重载AuthoriseAttribute,但看起来不可能在TempData中查看AuthoriseAttribute类。
  • 我不能在cookie中存储这个变量-这很重要。
  • 我不想把它存储在数据库的某个地方。

对我来说最好的方法是重置用户授权的某种方式,如果TempData是空的,但我不知道,如何做到这一点。或者,也许我是在重新发明轮子?:)

注::我使用TempData.Peek()同时获取数据,所以变量没有闪烁。

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

我想理解你的问题,但对我来说有点模糊。那么,您不想在用户登录时保留一些额外的关键用户信息吗?

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

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

你可以在cookie中使用它,即使它是关键的,一旦FormsAuthentication cookie被手动更改,它就会失效。