相关疑难解决方法(0)

ActionFilterAttributes是否跨线程重用?这是如何运作的?

我一直在使用以下代码进行一些测试,以尝试和锻炼ActionFilterAttributes的工作方式:

public class TestAttribute : ActionFilterAttribute
{
    private string _privateValue;
    public string PublicValue { get; set; }

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        _privateValue = DateTime.Now.ToString();

        base.OnActionExecuting(filterContext);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我在两个并行线程上运行上面的代码时,_privateValue字段会混淆.但是,PublicValue属性不会混淆.

在我看来,ActionFilterAttributes可以跨线程重用,但是根据为公共属性指定的常量创建新实例.我对么?

我在哪里可以找到相关信息?

asp.net-mvc

40
推荐指数
1
解决办法
9397
查看次数

使用StateServer的ASP.NET会话混合(SCARY!)

我们在会话中存储两个对象.不知何故,来自另一个用户的一个对象被加载到另一个用户的会话中.用户应该无法访问这些特定数据,一旦他们看到它就知道出现了一些非常错误的信息.

我们对他提供的数据有视觉证据,除非会议混淆,否则肯定没有办法发生.这是一个非常可怕的情况,我们无法弄清楚(我们无法重现它).我们唯一的答案是责怪ASP.NET StateServer混合会话变量,这是完全不可接受的,并使我们处于不利地位.

我们的应用程序是使用StateServer cookieless="false"会话模式和FormsAuthentication 在带有IIS6的Windows Server 2003上运行的ASP.NET 2.0应用程序.

还有其他人有这个问题吗?我们怎么解决呢?

asp.net security session iis-6 stateserver

18
推荐指数
2
解决办法
9037
查看次数

标签 统计

asp.net ×1

asp.net-mvc ×1

iis-6 ×1

security ×1

session ×1

stateserver ×1