【发布时间】:2015-04-29 17:33:33
【问题描述】:
我们有一个 Windows 服务进程,它不断地处理来自 微软消息队列。当对这些消息采取行动时,它正在调用 来自 WCF 服务的方法。
WCF 服务托管在一个 ASP.net 网站中,该网站不仅具有 WCF 服务也是一个最终用户的前端。通常,WCF 方法是 修改内存中的数据结构,前端正在读取它们。这 数据不断被修改,需要通知客户变化 立即地。 (我们正在使用 SignalR。)
只要 ASP.net 站点使用 Windows,一切都运行良好 集成身份验证。现在要求前端使用Forms 验证。当然,这破坏了 WCF 绑定。之前的绑定 是:
<basicHttpBinding>
<binding name="BasicHttpBinding_ISessionWebService">
<security mode="Transport">
<transport clientCredentialType="Windows" />
</security>
</binding>
</basicHttpBinding>
前端用户不需要能够调用服务。 (事实上,他们 应该做不到。)
理想情况下,我希望 WCF 服务继续使用 Windows 身份验证和 站点的其余部分使用表单身份验证,但我认为 IIS 不支持 这。我宁愿不必存储和传递帐户密码 运行 Windows 服务,但如果这是唯一的方法,我可以忍受。一世 在想可能有一些使用客户端证书的绑定,但我 我不确定如何设置。
我怎样才能以安全的方式公开 WCF 端点并且可以 从 Windows 服务调用?
【问题讨论】:
标签: c# asp.net wcf iis windows-services