【发布时间】:2012-04-18 21:24:03
【问题描述】:
我创建了一个接口,在接口上使用ServiceContract,在其所有方法上使用OperationContract。我在一个类中实现了这个接口,然后在我的 asp.net 网站中添加了 wcf 服务,它创建了一个 svc 文件(因为我想用我的网站在 IIS 中托管它)。现在该服务已启动并可通过http://localhost:8732/webui/webservice/camservice.svc 访问。现在我想为此服务启用用户名和密码身份验证。我想svc 使用basicHttpBinding 因为我不必在 web.config 中进行任何配置即可使其运行。现在如何在此服务上启用用户名/密码身份验证?互联网上有很多文章,但我相信,wcf 安全性是如此巨大,以至于我无法使用我使用的方法对用户名/密码身份验证进行集中解释。我在 vs 2010 中使用 .net 4.0
编辑:好的,我已经把问题缩小了一点。我相信,消息级别的安全性正是我所需要的
<security mode="Message">
<message clientCredentialType="Certificate" />
</security>
我本可以选择 SSL,但为此,我必须为每个服务调用访问 db 并验证用户。我更喜欢的是该服务为具有有效证书的客户提供服务。我从this article 那里得到了很多信息。它没有解释的是如何在客户端和服务器上设置 x509 证书以及如何控制只有我的客户端才能获得有效证书。
【问题讨论】:
-
是的,WCF 安全性是一个巨人,如果您想创建安全服务,您至少必须学习基础知识。例如,您希望您的服务具有什么样的安全性?用户名和密码应该如何传输?密码应该如何保护?
-
Ladislav 我想使用用户名和密码安全。
<security mode="TransportWithMessageCredential">强制使用 ssl。但我不想在第二步转移到 ssl。在,第一步我只想设置用户名和密码由客户端添加到消息头中,并在服务器上正确验证。是否有允许我这样做的安全模式?
标签: asp.net wcf web-services security