C# 只调用一次属性

C# 只调用一次属性,c#,asp.net,asp.net-mvc,authorization,C#,Asp.net,Asp.net Mvc,Authorization,我们已经创建了自己的authorize属性,该属性继承自MVC中的AuthorizeAttribute。这是在控制器级别添加的。我们使用该属性在线程上填充原则 每次从缓存或数据库检索用户时都会运行此方法 public void AuthenticateAs(System.Web.HttpContextBase context, IPrincipal user) { Thread.CurrentPrincipal = context.User = user;

我们已经创建了自己的authorize属性,该属性继承自MVC中的
AuthorizeAttribute
。这是在控制器级别添加的。我们使用该属性在线程上填充原则

每次从缓存或数据库检索用户时都会运行此方法

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