现在的位置: 首页 > 综合 > 正文

跨应用程序共享session Sharing Session Across Applications

2013年11月20日 ⁄ 综合 ⁄ 共 1378字 ⁄ 字号 评论关闭

FROM:http://www.codeproject.com/KB/session/sharedsession.aspx
核心代码:

web.config

<httpModules>
  <add name="SharedSessionModule" type="SharedSessionModule,   SharedSessionModule"/>
</httpModules>

<appSettings>
<add key="ApplicationName" value="SharedWeb"/>
</appSettings>

 

SharedSessionModule.cs
/// <summary>
/// SharedSessionModule class.
/// </summary>
public class SharedSessionModule : IHttpModule
{
#region IHttpModule Members
/// <summary>
/// Initializes a module and prepares it to handle requests.
/// </summary>
/// <param name="context">An <see cref="T:System.Web.HttpApplication"/>
/// that provides access to the methods,
/// properties, and events common to all application objects within an ASP.NET
/// application</param>
public void Init(HttpApplication context)
{
try
{
// Get the app name from config file...
string appName = ConfigurationManager.AppSettings["ApplicationName"];
if (!string.IsNullOrEmpty(appName))
{
FieldInfo runtimeInfo = typeof(HttpRuntime).GetField("_theRuntime",
BindingFlags.Static | BindingFlags.NonPublic);
HttpRuntime theRuntime = (HttpRuntime)runtimeInfo.GetValue(null);
FieldInfo appNameInfo = typeof(HttpRuntime).GetField("_appDomainAppId",
BindingFlags.Instance | BindingFlags.NonPublic);
appNameInfo.SetValue(theRuntime, appName);
}
}
catch (Exception ex)
{
Debug.WriteLine(ex);
}
}
/// <summary>
/// Disposes of the resources (other than memory) used by the module that
/// implements <see cref="T:System.Web.IHttpModule"/>.
  /// </summary>
public void Dispose()
{
}
#endregion
}

抱歉!评论已关闭.