我们创建了自己的authorize属性,该属性继承自MVC中的AuthorizeAttribute
。这是在控制器级别添加的。我们使用该属性来填充线程上的原则。
每次从高速缓存或db中检索用户时都会运行此方法。
public void AuthenticateAs(System.Web.HttpContextBase context, IPrincipal user) {
Thread.CurrentPrincipal = context.User = user;
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(((Entities.User)((SiteIdentity)user.Identity).User).Locale);
}
我们注意到,当我们有一个有多个RenderAction
调用的视图时,该属性被多次调用。
有没有办法阻止这种情况发生,即视图调用多个RenderAction
方法然后使用初始IPrincipal?