部分使用WSE2

发布于 2024-11-16 17:52:22 字数 1024 浏览 7 评论 0原文

我正在编写一个 .Net Web 服务来替换旧的服务。 为了不破坏现有的客户端,我不能改变接口。 这意味着没有 WSE 可以访问此 Web 服务。

“旧”Web 服务直接访问数据库。

“新”不直接访问数据库,它使用另一个网络服务来做到这一点。该其他 Web 服务已被其他一些应用程序使用。

所以,基本上,我正在另一个(私有)Web 服务前面编写一个(公共)Web 服务。

我们将新的公共 Web 服务称为“Front”,将现有的私有 Web 服务称为“Back”。

问题在于“Back”需要 WSE2 身份验证,而“Front”需要在没有 WSE2 的情况下也可访问。

如何在 web.config 中进行配置?我有 microsoft.web.services2 部分和soapExtensionTypes 部分,如下所示:

<microsoft.web.services2>
  <diagnostics>
     <trace enabled="true" input="InputTrace.log" output="OutputTrace.log" />
  </diagnostics>
  <policy>
     <cache name="policyCache.config" />
  </policy>

  <webServices>
     <soapExtensionTypes>
        <add type="Microsoft.Web.Services2.WebServicesExtension, Microsoft.Web.Services2, Version=2.0.0.0,  [.....] />
     </soapExtensionTypes>
  </webServices>

我需要那些符合“后”,但随后调用“前”的客户端也需要符合 WSE2,但我不想要。

有什么帮助吗?

I'm coding a .Net web service that will replace an old one.
In order not to break existing clients, I must not change the interface.
That means no WSE to access this web service.

The "old" web service was accessing directly to database.

The "new" one don't access database directly, it use another web service to do that. That other web service is used by a some other applications already.

So, basically, I'm writing a (public) web service in front of another (private) web service.

Let call the new public web service "Front", and the existing private web service "Back".

The problem is that "Back" requires WSE2 authentication, while "Front" needs to be reachable without WSE2.

How do I configure that in web.config? I have the microsoft.web.services2 section and and soapExtensionTypes sections like that:

<microsoft.web.services2>
  <diagnostics>
     <trace enabled="true" input="InputTrace.log" output="OutputTrace.log" />
  </diagnostics>
  <policy>
     <cache name="policyCache.config" />
  </policy>

  <webServices>
     <soapExtensionTypes>
        <add type="Microsoft.Web.Services2.WebServicesExtension, Microsoft.Web.Services2, Version=2.0.0.0,  [.....] />
     </soapExtensionTypes>
  </webServices>

I need those to conform to "Back", but then the clients calling "Front" need to conform to WSE2 too, witch I do not want.

Any help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

岛徒 2024-11-23 17:52:23

终于我自己找到了答案,它在策略文件中。我必须为不同的策略定义不同的端点。像这样的事情:

<?xml version="1.0" encoding="utf-8"?>
<policyDocument xmlns="http://schemas.microsoft.com/wse/2003/06/Policy">
  <mappings xmlns:wse="http://schemas.microsoft.com/wse/2003/06/Policy">
     <!-- calls to this web services will use wse -->
     <endpoint uri="http://the.service.that.needs.wse2.asmx">
        <defaultOperation>
           <request policy="#Sign-Username" />
           <response policy="" />
           <fault policy="" />
        </defaultOperation>        
     </endpoint>
    <!-- no policies for other endpoints -->
    <defaultEndpoint>
      <defaultOperation>
      </defaultOperation>
    </defaultEndpoint>
  </mappings>
  <policies [...]>
    [...]
  </policies>
</policyDocument>

现在我想找到如何动态配置端点 uri,但这可能是另一个问题。

Finally found the answer myselft, it's in the policy file. I had to define different endpoints for different policies. Something like that :

<?xml version="1.0" encoding="utf-8"?>
<policyDocument xmlns="http://schemas.microsoft.com/wse/2003/06/Policy">
  <mappings xmlns:wse="http://schemas.microsoft.com/wse/2003/06/Policy">
     <!-- calls to this web services will use wse -->
     <endpoint uri="http://the.service.that.needs.wse2.asmx">
        <defaultOperation>
           <request policy="#Sign-Username" />
           <response policy="" />
           <fault policy="" />
        </defaultOperation>        
     </endpoint>
    <!-- no policies for other endpoints -->
    <defaultEndpoint>
      <defaultOperation>
      </defaultOperation>
    </defaultEndpoint>
  </mappings>
  <policies [...]>
    [...]
  </policies>
</policyDocument>

Now I would like to find how to dynamically configure the endpoint uri, but that will be possibly another question.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文