1

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

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

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

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

4

4 回答 4

2

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

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

于 2013-05-22T19:18:33.597 回答
0

我记得 X509Certificate2UI 向您显示 Windows 证书对话框,也可以通过“证书”中的 microsoft 管理控制台 snap 访问该对话框。

我猜它只能显示本地证书。而且由于 silverlight 安全限制,我还猜测该事件是不可能的(作为 web 应用程序运行时)。

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

于 2012-04-25T09:44:37.777 回答
0

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

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

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

于 2012-04-25T11:43:40.693 回答
0

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

于 2012-11-24T13:17:13.920 回答