2012-11-07 47 views
2

我需要存储一个ID,用于将在我的Web应用程序中执行的每个操作中使用的用户。我曾希望使用定制授权ActionFilterAttribute(在整个控制器上)使用此附加信息填充ViewData,但事实证明,在这些ActionFilterAttributes执行操作之前,会运行整个堆栈。 ModelBinding,控制器制造存储有关已登录的ASP.NET MVC用户的其他信息

我想也许有一种方法可以扩展HttpContext.User.Identity来存储额外的数据,但不知道从哪里开始。

任何想法?

回答

1

SOLUTION
放眼望去更详细地在计算器上我碰到这个解决方案来了确实是我想要的,并以超级干净和正确的方式(建议:它使用FormsAuthenticationCookieuserData属性 - https://stackoverflow.com/a/10524305/175893

0

一种选择是有一个全局(静态)ConcurrentDictionary和存储有关的身份/用户有任何额外的信息 - 使用什么是方便,一键...因为这本词典是线程安全的,主要是实现无锁它提供了出色的性能......这样你就不需要惹任何特定的ASP.NET的东西左右...