2012-01-31 79 views
1

我會先說我是SSL新手,以及它如何在ASP.NET/WCF中工作。我可以通過SSL使用單獨的web.config文件嗎?

我有一個Web服務,當前沒有使用SSL訪問,我需要更改接受通過http和https的流量。我的web.config引用了使用http的第三方URL。這些URL被返回給客戶端,然後通過JavaScript訪問。如果使用SSL的網站使用SSL調用我的Web服務,則需要返回這些第三方URL的https版本,以便瀏覽器不會顯示「混合安全」警告。

有沒有人有任何建議如何最好地實現這一目標?我以爲有一個想法是創建一個處理所有ssl流量的並行站點,但我不確定IIS6(這是我們現在使用的)的可行性。

回答

1

您應該將其保存到一個web.config文件中。我假設你試圖避免「此頁面包含安全和不安全的內容」警告?

您可以在不使用協議的情況下將您的URL存儲在web.config文件中(例如,www.google.com,而不是http://www.google.com)然後,當您從代碼中使用URL時,在將它們從web.config但你顯示它們之前,使用請求IsSecureConnection財產

http://msdn.microsoft.com/en-us/library/system.web.httprequest.issecureconnection.aspx

例如:

((Request.IsSecureConnection)?"https://":"http://") + ConfigurationManager.AppSettings["theURL"] 

或者你可以用JavaScript做(這是谷歌Analytics(分析)是怎麼做的):

var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); 

再後來,他們只是使用gaJsHost「前綴」,以獲取資源..

0

我不確定你在問什麼,但只要你沒有IIS站點配置爲只允許SSL流量,你應該沒問題。您的服務仍然可以在SSL和非SSL流量上運行。

您應該使用重寫規則,以確保所有用戶定向到SSL http://www.sslshopper.com/iis7-redirect-http-to-https.html

如果使用重寫模塊IIS7按照我上面你鏈接的指令可以確保任何人訪問您的網站是自動重定向到SSL。

+0

我編輯了這個問題,但不清楚。我的問題是我想有一個web.config爲我的非ssl流量和一個不同的我的ssl流量在同一個網站上。 – 2012-01-31 19:20:04

0

始終使用https引用文件,問題就解決了。否則,可能會開始使用不帶協議的網址 - 例如//somesite.com/somefile.html - 瀏覽器將使用當前頁面的協議。

相關問題