如何在Silverlight中显示X.509证书详细信息?

时间:2012-04-25 09:32:29

标签: .net silverlight x509certificate

在.NET 4后端,我们有一个X.509证书,形式为X509Certificate2X509Certificate。在Silverlight前端,我们希望显示该证书的详细信息。

在.NET中,我们可以简单地使用X509Certificate2UI,这会打开标准的Windows证书详细信息对话框。 (更新:此对话框可以显示任何X509Certificate2实例,无论它来自何处。)但该类在Silverlight中不可用。 (请注意,Silverlight中也不提供X509Certificate2,但X509Certificate是。)

我目前看到的唯一方法是将X509Certificate的实例发送到前端(更新:我知道如何做到这一点),并在之上构建我们自己的Silverlight UI那个信息。

我的问题:是否有更简单的方法,或者是否已经可以从某个地方获得这样的用户界面?

4 个答案:

答案 0 :(得分:2)

您可以在.Net中创建一个Com自动化对象,该对象调用X509Certificate2UI,运行您的Silverlight应用程序完全信任,并使用AutomationFactory.CreateObject来调用该对象。

注意:调用com对象的安全上下文可能与用户的安全上下文不同;您可能需要适当地设置证书的安全性。

答案 1 :(得分:0)

我记得X509Certificate2UI显示了Windows证书对话框,也可以通过“证书”中的微软管理控制台快照进行访问。

我猜它只能显示本地证书。由于Silverlight安全限制,我也猜测这个事件是不可能的(当作为webapplication运行时)。

但如果我错了,请纠正我。

答案 2 :(得分:0)

您从托管silverlight对象的asp.net应用程序中获取要显示的信息,并通过对象的InitParams传递要显示的内容,然后在App.xaml.cs文件中检索它们。我正在使用此方法来传递Web服务端点配置。您可以传递键/值的任意组合。

如果您不熟悉,请参阅此msdn链接以获取有关该方法的更多详细信息。

http://msdn.microsoft.com/en-us/library/cc189004%28v=vs.95%29.aspx

答案 3 :(得分:0)

由于缺乏积极的回应,我得出结论,最简单的选择是在X509Certificate实例之上构建我们自己的UI。对于非常简单实现,请调用X509Certificate.ToString(true)(或服务器端X509Certicate2上的等效项)并向用户显示生成的文本。结果并不是真正用户友好,但至少所有信息都在那里。