这是最后的游戏......我需要一个通过 ssl 具有用户名/密码安全性的 wcf 服务应用程序。非常基本的东西,但我正在努力完成这项工作。我正在尝试从此处列出的微软模式和实践中实施 HOWTO 指南:
如何:在来自 Windows 窗体的 WCF 调用中使用具有传输安全性的用户名身份验证。
我已经完全按照每个步骤...除了步骤 9 - 12。这些步骤实现了自定义身份验证和授权类。我在这些自定义类的实现和没有时都遇到了错误。
首先,没有自定义类...没有自定义授权和身份验证,我可以编译我的 wcf 项目并在控制台客户端应用程序中创建服务引用。当我运行我的控制台应用程序时,它可以工作,但是当我装饰我的 wcf 方法以限制权限时,客户端似乎永远不会将凭据传递给 wcf 服务。如果它离开该方法的装饰并逐步跟踪到 wcf 方法,如果发现 ServiceSecurityContext.Current.PrimaryIdentity.Name 为空白。我正在装饰: [PrincipalPermission(SecurityAction.Demand, Role = "sysadmin")] (是的,我使用 ASP.net 配置来创建角色和该角色中的帐户。)
其次,使用自定义类...如果我包含步骤 10 中列出的 HttpModules 元素,我会收到一条错误消息,指出 IIS express 7.5 不再这样做,我需要移动配置。经过一番打猎,我发现我需要将项目移动到 . 但它仍然抱怨无法引用该模块。如果我省略了身份验证模块并尝试只引用授权模块,我会得到同样的错误。
我试图包含整个 web.config,但这个编辑器不想全部包含在内。可以说它与 msdn 文章完全一样,只是移动了模块标签。