2016-10-02 117 views
2

我已經搜索了很多,但無法找到這個具體問題相關的答案。VisualStudio:無法創建SSL/TLS安全通道

我正在通過我的c#web應用程序訪問Web服務。 Web服務需要請求中的證書進行身份驗證。

Web應用程序處於開發模式,我使用VisualStudio 2013和iis express。

我已通過MMC在本地計算機上安裝了客戶端證書。 在Web服務請求中,我添加了X509Certificate。 Web服務器不支持SSL,但TLS,所以我加入以下行,以及:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; 

我也加入如下一行:

ServicePointManager.ServerCertificateValidationCallback =delegate { return true; }; 

的問題是,如果我運行在VisualStudio中與IIS普通用戶表達我得到

"The request was aborted: Could not create SSL/TLS secure channel." 

但是,如果我運行的VisualStudio以管理員身份與IIS表達則連接成功併網erver返回所需的響應。

然後我主持的應用程序在我的本地IIS與.net完全信任,但還是得到了:

"The request was aborted: Could not create SSL/TLS secure channel." 

我的ip是網絡服務器上的白名單。

如果有人能幫助我理解VisualStudio作爲管理員運行時爲什麼會工作,爲什麼它不能像普通用戶那樣工作?

回答

2

只是一個猜測:這可能是一個證書訪問錯誤。

您可以編輯證書的ACL:在MMC中選擇證書;上下文菜單;所有任務;管理私鑰。

管理員默認在此列表中。這與你描述的行爲相符。

+1

德克,這使得完美的感覺:) 你的猜測導致我授予MMC中的權限。然後還有另一個問題,我沒有「管理私鑰」選項。 然後我搜索了那個,我發現了這個技巧[here](http://stackoverflow.com/a/10955915/3233944)。 我的證書位於Trusted文件夾中。我將它拖到個人文件夾,因爲管理密鑰選項可用於個人。在那裏,我添加了IUSR和Everyone來擁有完整的權限,並將證書拖回受信任的根:)它像一個魅力一樣工作。 – Mansoor

+0

我很高興聽到這個:-) –

0

普通用戶不會有像管理員足夠的用戶權限:有時在大多數情況下 ,

You can change normal user rights like as administrator if you want. 
+0

在這種情況下,我們在談論什麼用戶權利?如果它無法像普通用戶那樣獲取證書,那麼這將是有意義的,但它確實以普通用戶和管理員用戶身份找到證書。 爲什麼不在本地IIS中工作:(? – Mansoor

相關問題