對於我最後一年的項目,我開發了一個ASP.NET網站,並且已經使用Windows Identity Foundation實現了單點登錄系統(以類似於教程顯示在這裏:http://www.primaryobjects.com/2013/08/08/using-single-sign-on-with-windows-identity-foundation-in-mvc-net)承載WIF身份提供商併爲其生成自簽名證書
這意味着我目前有2個網站,我的標識提供商站點和使用IP的網站,幷包含大部分功能。IP使用X509證書來生成令牌,我已經能夠使用自簽名證書。這是我一直在使用檢索從本地機器證書代碼:
var store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
X509Certificate2Collection certificates = null;
store.Open(OpenFlags.ReadOnly);
try
{
certificates = store.Certificates;
var certs = certificates.OfType<X509Certificate2>().Where(x => x.SubjectName.Name.Equals(subjectName, StringComparison.OrdinalIgnoreCase)).ToList();
if (certs.Count == 0)
throw new ApplicationException(string.Format("No certificate was found for subject Name {0}", subjectName));
else if (certs.Count > 1)
throw new ApplicationException(string.Format("There are multiple certificates for subject Name {0}", subjectName));
return new X509Certificate2(certs[0]);
}
爲了能夠提出我的項目,我會被邀請主持它在網絡上,但是這將意味着我需要替代我的自簽名證書。
我可以使用諸如天藍色網站之類的東西來託管我的網站,但目前我無法找到一個解決方案,使我能夠在Azure等服務上生成自簽名證書並以編程方式檢索它。
你能否給我一個解決這個問題的建議?
是的,我明白你的意思,我同意,在一個真實世界的項目中,我不會通過自己建立一個提供者來浪費時間。我認爲這是一個深入瞭解這個概念的機會,併爲通常沒有人會注意的應用程序的一部分添加了一個轉折點。無論如何,謝謝你的建議。我會給那些Azure虛擬機看一看。 –