程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 跨站點共享Session解決方案、單點登錄解決方案(ASP.NET 2.0版本)

跨站點共享Session解決方案、單點登錄解決方案(ASP.NET 2.0版本)

編輯:.NET實例教程
我們在進行web開發時經常會用到Session,用它去標識不同的會話,那麼涉及到跨站點的時候如何實現Session共享呢?


通常的解決方案有:使用數據庫、使用CookIEs做中間橋等等。

下面介紹一種基於ASP.Net 2.0的,通過序列化和反序列化機制實現的一種解決方案。

首先看一下通常的服務器集群的網絡拓撲結構:



利用序列化機制實現Session共享的原理:

1、Web Server 1的應用程序序列化Session信息為文本值(可以是Binary或Soap格式)

2、將序列化後的值寫入文件,保存到File Server上

3、Web Server 2 對保存在File Server上的Session序列化後的值進行反序列化

4、在Web Server 2上重新構建Session值


下面我們來詳細看看實現代碼,分以下幾個步驟:


1、創建一個類庫工程:ShareSession

引入以下的命名空間:

System.configuration
System.Runtime.Serialization.Formatters.Soap
System.Web

2、創建一個類:SessionEntity

代碼如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;

namespace ShareSession
...{
    /**//* *****************************
     *
     *  Author      :    Xiaojun Liu
     *  Create Date :    2007.11.09
     *  Description :
     *
     * *****************************
    */



    [Serializable]
    public class SessionEntity
    ...{             <
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved