【发布时间】:2012-04-13 23:41:56
【问题描述】:
我有一个 WCF 3.5 服务,它运行良好。它使用托管的 basicHttpBinding 和 IIS 7。我想为其添加一些最低限度的安全性,也许是用户名和密码。有人可以给我一些非常基本的指示吗?我需要在 web.config 文件中添加什么?
【问题讨论】:
我有一个 WCF 3.5 服务,它运行良好。它使用托管的 basicHttpBinding 和 IIS 7。我想为其添加一些最低限度的安全性,也许是用户名和密码。有人可以给我一些非常基本的指示吗?我需要在 web.config 文件中添加什么?
【问题讨论】:
并不是说在 codeplex 上找到的内容有什么问题,我只是觉得当您刚开始尝试时,它一下子就太多了。就我个人而言,我更喜欢有人让我很好地了解它是否适用于我想要完成的事情——只要它是我正在寻找的基本理念。
话虽如此,我觉得 Peter van Ooijen 的这些文章就是这样做的......
原创文章
A Simple WCF Service With Username & Password Authentication: The Things They Don't Tell You
后续文章
A Simple WCF Service With Username & Password Authentication: The Things You Told Me
...它绕过了很多繁重的(不需要的)细节,并触及了 WCF 安全理念的核心,因为它与 WCF 之前的安全性大不相同。我认为最难处理的事情(不幸的是)是创建这些安全证书。我个人以前从来没有这样做过,所以我觉得这很痛苦。幸运的是,这里有一个工具可以帮助创建 PluralSight 创建的证书,免费使用。在文章中提供了 PluralSight 的自我认证工具的链接,但是该链接已损坏。这是他们当前的链接:
Self-Cert by PluralSight
希望这可以帮助像我一样在这方面苦苦挣扎的人。
【讨论】:
WCF Security Guidance 是一个非常好的起点 - 有很多场景、示例、解释等等。
对于通过 basicHttpBinding 进行的基本用户名/密码验证,您需要准备好几部分:
实际在每次调用前在客户端设置用户名/密码(仅在代码中)
定义如何验证来自服务器端的用户名/密码 - 您的选项针对 Active Directory 进行验证(例如,您的所有呼叫者都需要在您的域中拥有一个 AD 帐户),针对 ASP 进行验证.NET 会员数据库,或自行开发
这个操作方法“How To – Use Username Authentication with the SQL Server Membership Provider and Message Security in WCF from Windows Forms”基本上可以满足您的需求 - 具体示例适用于 wsHttp,但它也适用于 basicHttpBinding
【讨论】: