MOSS與業務系統的整合 之 單點登入

來源:互聯網
上載者:User

前面MOSS與業務系統的整合 之 自訂Membership實現Forms方式驗證文章中,我們實現了兩系統的使用者整合,下面要解決的是兩系統間的單點登入問題。

部署在兩台不同的伺服器上的系統,要實現單點登入,最好的辦法就是使用Cookie共用來實現了。只要將兩系統使用同一根網域名稱,並且使用者儲存使用者登入票據的Cookie名稱,以及Cookie加解密密鑰一致即可。

  1. 業務系統的寫cookie方式

     1 protected static void WriteCookie(string userName, bool isPersistent)
     2 {
     3             FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
     4                 1,
     5                 userName,
     6                 DateTime.Now,
     7                 DateTime.Now.AddMinutes(80),
     8                 isPersistent,
     9                 userName,
    10                 FormsAuthentication.FormsCookiePath);
    11             // Encrypt the ticket.
    12             string encTicket = FormsAuthentication.Encrypt(ticket);
    13             HttpCookie myCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
    14              
    15            //如果使用者使用網域名稱訪問ADC,則在cookie上增加網域名稱資訊
    16               if (IsValidDomain(HttpContext.Current.Request.Url.Host))
    17             {
    18                 myCookie.Domain = FormsAuthentication.CookieDomain;
    19             }
    20 
    21             if (isPersistent)
    22             {
    23                 myCookie.Expires = ticket.Expiration;
    24             }
    25             // Create the cookie.
    26             HttpContext.Current.Response.Cookies.Add(myCookie);
    27 }
    28 
    29 protected static bool IsValidDomain(string strIn)
    30 {
    31             string strPattern = @"^\w+([-.]\w+)*\.\w+([-.]\w+)*$";
    32             return System.Text.RegularExpressions.Regex.IsMatch(strIn, strPattern);
    33 }
    34 

         

  2. 業務系統的web.config修改<!--Cookie名稱與根網域名稱需一致-->
    <authentication mode="Forms">
          <forms name="CookieName"  domain=".domain.com" path="/" ></forms>
    </authentication>
  3. Moss網站的web.config修改 <!--將MOSS網站web.config中machineKey配置複製到業務系統中,兩系統保持一致即可 -->
    <machineKey validationKey="C57043728999BCF9537BA55F5978F50722C91B26A0F9D34F"
       decryptionKey="C57043728999BCF9537BA55F5978F50722C91B26A0F9D34F"
       validation="SHA1" />

    <!--Cookie名稱與根網域名稱也需一致-->
    <authentication mode="Forms">
          <forms name="CookieName"  domain=".domain.com" path="/" ></forms>
    </authentication>

原文地址:http://www.cnblogs.com/CSharp/archive/2008/08/05/1261104.html

相關關鍵詞:
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.