代码之家  ›  专栏  ›  技术社区  ›  Jeff

ASP.NET httpApplication本地存储

  •  0
  • Jeff  · 技术社区  · 14 年前

    我需要一些httpapplication本地存储。我认为applicationState是实现这一点的地方,但显然,它可以在AppDomain中的httpapplication实例之间共享。

       public class MyHttpModule : IHttpModule
        {
            private object initializingLock = new object();
    
            private static HttpApplication last;
    
            public void Init(HttpApplication context)
            {
                lock (initializingLock)
                {
                    // always is false, as expected
                   if (last == context) 
                   { 
                   }
    
                   // is true for 2nd HttpApplication in AppDomain!
                   if (last != null && last.Application == context.Application)                    
                   {                   
                   }
    
                   last = context;
                }
            }
         }
    

    用什么最好的Blace来存储其他人可以访问的每个http应用程序的数据?

    1 回复  |  直到 14 年前
        1
  •  0
  •   VinayC    14 年前

    如果您正在为特定(或受控制的)Web应用程序进行编码,那么您可以在global.asax中的http应用程序中添加所需的任何状态,例如

    public class Global : System.Web.HttpApplication
     {
        string MyProperty { get; set;}
        ....
    

    然后在模块中,将http应用程序强制转换为global并访问状态。例如,

    var myApp = context as Global;
    if (null != myApp) 
    {
        var value = myApp.MyProperty;
        ...
    }