BizTalk:在为应用程序导出绑定时,从自定义适配器的发送端口清除密码

时间:2012-12-03 13:14:24

标签: binding passwords adapter biztalk baseadapter

使用我为BizTalk Server 2010制作的适配器导出包含发送端口的应用程序时,我在清除密码时遇到问题。

发送端口使用我根据Microsoft.Samples.BizTalk.Adapter.Common BaseAdapter(v.1.0.2)制作的适配器。

TransmitLocation.xsd和TransmitHandler.xsd架构都使用AdapterFramework密码特定字段,两者都定义为:

    <xs:element minOccurs="1" default="" name="passwordField">
      <xs:simpleType>
        <xs:annotation>
          <xs:appinfo>
            <baf:designer xmlns:baf="BiztalkAdapterFramework.xsd">
              <baf:category _locID="mailAuthIndstillingerKategori">Password related category</baf:category>
              <baf:displayname _locID="passwordName">Password:</baf:displayname>
              <baf:description _locID="passwordDescription">Password description.</baf:description>
              <baf:editor assembly="%BTSROOT%\\Developer Tools\\Microsoft.BizTalk.Adapter.Framework.dll">Microsoft.BizTalk.Adapter.Framework.ComponentModel.PasswordUITypeEditor</baf:editor>
              <baf:converter assembly="%BTSROOT%\\Developer Tools\\Microsoft.BizTalk.Adapter.Framework.dll">Microsoft.BizTalk.Adapter.Framework.ComponentModel.PasswordTypeConverter</baf:converter>
            </baf:designer>
          </xs:appinfo>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:maxLength value="50" />
        </xs:restriction>
      </xs:simpleType>
    </xs:element>

有些google-hits提到在应该清除的元素上设置' vt =“1”'属性应该可以解决问题。我已经尝试在调用 ValidateConfiguration()时设置/添加此属性。但是配置XML作为字符串返回,然后在插入&lt; CustomProps&gt; xml之前进行转义,并在绑定文件中导出。

我已尝试在注册表项中指定 SendHandlerPropertiesXML SendLocationPropertiesXML AdapterConfig ,应使用以下 &lt; CustomProps&gt; ,带有 vt =“1”属性,希望它能够删除端口的整个绑定属性(不是最佳的,但比让某人更好的解决方案)导出密码):

SendHandlerPropertiesXML : <CustomProps><AdapterConfig vt="1"/></CustomProps>
SendLocationPropertiesXML : <CustomProps><AdapterConfig vt="1"/></CustomProps>

导出具有已配置发送端口的应用程序时,特定XML如下所示:

<TransportTypeData>&lt;CustomProps&gt;&lt;AdapterConfig vt="1"&gt;&amp;lt;Config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&amp;gt;&amp;lt;passwordField vt="1"&amp;gt;CLEARTEXTPASSWORD;lt;/passwordField&amp;gt;&amp;lt;uri&amp;gt;SMTP://NOT-USED&amp;lt;/uri&amp;gt;&amp;lt;/Config&amp;gt;&lt;/AdapterConfig&gt;&lt;/CustomProps&gt;</TransportTypeData>

每次导出绑定时,都会调用适配器的重载方法: ValidateConfiguration(),但是无法确定是否在配置适配器或导出绑定时,意思是:你不能破坏被返回的xml-string中的密码,因为它在配置时也会破坏密码。

还有其他内置适配器可以执行此操作(E.G。:SMTP适配器),我确信它是基本的,我误解了。但任何帮助或指示都会非常有用。

1 个答案:

答案 0 :(得分:2)

我注意到CodePlex上的Blogical Sftp Adapter使这项工作成功,我已经能够复制它了。

您只需在密码元素上添加type="baf:Password"即可。

您可以引用其架构here