gpt4 book ai didi

WCF 安全 - 如何允许所有调用者访问此 url?

转载 作者:太空宇宙 更新时间:2023-11-03 13:08:41 24 4
gpt4 key购买 nike

我有一个在 Windows 服务环境中自托管的 WCF 服务,它可以在 http 上正常工作;通过 https 在运行 silverlight 应用程序(或仅在 IE 中打开页面)时,我无法在没有看到 Windows 登录提示的情况下访问一个 URL。我正在使用 IPolicyRetriever 接口(interface)来确保为 Silverlight 应用程序找到 ClientAccessPolicy.xml 文件。这工作正常。

相关服务定义了两个端点:

<service behaviorConfiguration="defaultBehavior" name="WCFServices.Scheduler">
<endpoint address="WCFServices/Scheduler/" binding="wsHttpBinding" bindingConfiguration="dBinding" contract="WCFServices.IScheduler" />
<endpoint address="" binding="webHttpBinding" contract="WCFServices.IPolicyRetriever" behaviorConfiguration="PolicyBehavior" bindingConfiguration="dBinding" />
<host>
<baseAddresses>
<add baseAddress="https://myservername.org/" />
</baseAddresses>
</host>
</service>

如果我转到 https://myservername.org/,我会看到测试服务前端(带有指向 wsdl 的链接)。这公开了 Silverlight 应用程序用来下拉策略文件的根 IPolicyRetriever 实例。我可以在没有任何登录提示的情况下加载这个和其他公开 WCF 服务的 URL。但是,如果我在 IE 8 中访问 https://myservername.org/WCFServices/Scheduler/,我会收到 Windows 登录信息。如果我重置服务和客户端的安全设置以使用 http,我可以在没有登录提示的情况下转到后一个 url,并且 silverlight 应用程序按预期运行。我怀疑这与此 WCF 服务有关,因为它是唯一一个定义了两个端点的服务(此 Windows 服务托管 5 个其他 WCF 服务,所有这些服务都只定义了 1 个端点)。我是否缺少一些授权规则?我不明白这是怎么回事,因为所有其他服务都在没有提示的情况下加载。

如果有任何帮助,我将不胜感激。我需要完整的 https://myservername.org/WCFServices/Scheduler/ 才能在不要求登录的情况下提供 WCF 服务。感谢您花时间阅读本文。

就安全性而言,我只有这个作为我的绑定(bind):

<binding name="dBinding" maxBufferPoolSize="524288" maxReceivedMessageSize="6553600">
<security mode="Transport">
</security>
</binding>

最佳答案

通过将这些行添加到我的安全绑定(bind)中解决了这个问题:

<security mode="Transport">
<transport clientCredentialType="None" proxyCredentialType="None"/>
</security>

...但这导致了许多其他问题,由于 WCF 日志记录,我已经能够处理所有这些问题。如果您在调试 WCF 服务时遇到 NOT FOUND (400) 错误,请不要相信。打开服务器端调试并查看生成的日志文件——您将深入了解它。

我还应该注意到,我发现第二个端点在网络浏览器中打开时返回错误请求 (400),这是设计使然。第一个端点将在其 wsdl 中列出所有其他端点,您仍然可以在代理生成工具中使用它们中的任何一个。如果您在尝试直接在浏览器中访问它们时遇到错误请求错误,请不要担心。

关于WCF 安全 - 如何允许所有调用者访问此 url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2177845/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com