2007年11月2日 星期五

asp.net 1.1 與 2.0 的SSO

公司內有不同的team,以 asp.net 1.1 asp.net 2.0開發程式

一個team只會使用 1.1 來開發,暫時還無法使用 vs2005 來開發程式

一個team 不願再使用 1.1來開發了。真的生產力不好。因此要用  asp.net 2.0 (vs2005) 開發。

 

問題來了,兩個不同版本的程式,當然需要不同的虛擬目錄。都使用 Forms authetication

一般來說會使的使用者需要登入兩次。

 

解法如下:

 

ASP.NET 2.0 的預設decryption AES,而非 asp.net 1.1 3DES。為了讓兩者有一致的解密法,要將一些屬性設定成一致

 

 

ASP.NET 2.0 web.config 而要設定如下。其中,name protection 的值必需與 asp.net 1.1 的一致。

 

<authentication mode="Forms">

      <forms name="VAT" protection="All" loginUrl="login/login.aspx">

      </forms>

    </authentication>

    <authorization>

      <deny users="?" />

    </authorization>

    <machineKey validationKey="F9D1A2D3E1D3E2F7B3D9F90FF3965ABDAC304902" decryptionKey="F9D1A2D3E1D3E2F7B3D9F90FF3965ABDAC304902F8D923AC" validation="SHA1" decryption="3DES" />

 

ASP.NET 1.1 web.config 與上面幾乎要完全相同,不過,不能有 decryption="3DES"的屬性設定。

沒有留言:

Share with Facebook