【发布时间】:2011-05-15 08:38:06
【问题描述】:
假设系统S拥有一个证书C。下面的引用表明,如果S's 服务应用程序要使用C 向客户端验证自己,那么C 应该存储在LCS 中。但是如果C 被S's 客户端应用程序用来向服务验证自己,那么C 应该存储在CUS 中:
• 本地计算机存储 (LCS)。 这包含证书 由机器进程访问,例如 ASP.NET。使用此位置存储 认证的证书 服务器到客户端。
• 当前用户存储 (CUS)。交互的 应用程序通常放置 此处为计算机的证书 当前用户。如果您正在创建一个 客户端应用程序,这是你 通常放置的证书 对服务的用户进行身份验证。
但是下一个引用否定了上述内容,因为它说如果S's服务嵌入在用户帐户下运行的应用程序中,那么证书C应该存储在CUS中
选择存储证书的位置 取决于服务的方式和时间或 客户端运行。以下一般 规则适用:
• 如果服务是 Windows 服务, 以“服务器”模式运行的服务 下没有任何用户界面 网络服务帐号,使用本地 机器商店。请注意,管理员 安装需要权限 证书到本地机器 商店。
• 如果服务或客户端是嵌入的 在一个应用程序下运行 用户帐户,然后使用当前 用户商店。
a) 嵌入到应用程序中的服务是什么意思?是在 Net 中运行的 WCF 服务。控制台应用程序或被视为嵌入的 Asp.Net 应用程序内?
b) 为什么如果应用程序(嵌入 WCF 服务)在用户帐户下运行(即使该帐户具有管理员权限),证书应该位于 CUS 中?这是否意味着如果它位于 LCS 内,那么 S(也就是客户端应用程序尝试将此证书发送到服务器)将无法找到证书?
谢谢
【问题讨论】:
标签: windows wcf certificate