軟體解決路由迴流問題

來源:互聯網
上載者:User

最近在使用CAS 做SSO 時遇到了迴流問題

(迴流簡要說明:

應用和服務在同一內網IP,本身服務和應用又被映射了外網IP,當應用使用外網IP訪問服務時,訪問被拒絕。因為路由檢測到訪問的服務在同一內網IP地址上,只能通過內網IP訪問,或者更改路由的配置。)

在這裡介紹軟體的解決方案:

由於CAS驗證的需要無法直接將IP配置改為內網IP,所以只能動態判斷,當發生WebException時自動將URL中的地址替換為本機地址,用來解決迴流問題


判斷的代碼如下(ReplaceLocalIP是用來替換本地地址的方法)

                try                {                    serverResponse = RetrieveResponseFromServer(validationUrl, ticket);                }                catch (WebException)                {                    validationUrl = ReplaceLocalIP(validationUrl);                    serverResponse = RetrieveResponseFromServer(validationUrl, ticket);                }

ReplaceLocalIP方法:

 /// <summary>        /// 替換為本地地址針對 迴流問題        /// </summary>        /// <param name="validationUrl"></param>        /// <returns></returns>        private string ReplaceLocalIP(string validationUrl)        {            int iIndex = validationUrl.IndexOf("//");            int iIndex1 = validationUrl.IndexOf("/", iIndex + 2);            string sHostOld = validationUrl.Substring(iIndex + 2, iIndex1 - iIndex + 2);            string[] ArrayAdd = sHostOld.Split(':');            ArrayAdd[0] = "127.0.0.1";            string sHostNew = string.Empty;            foreach (var item in ArrayAdd)                sHostNew += item+":";            sHostNew = sHostNew.Remove(sHostNew.Length - 1);            string sResult = validationUrl.Replace(sHostOld, sHostNew);            return sResult;        }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.