4

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 は文字列として返され、 <CustomProps> xmlに挿入される前にエスケープされ、バインディング ファイルにエクスポートされます。

レジストリ エントリで、SendHandlerPropertiesXMLSendLocationPropertiesXMLAdapterConfigが次の<CustomProps>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 に含まれます。

これを行う他の組み込みアダプター (例: SMTP アダプター) があり、私が誤解しているのは基本的なものだと確信しています。しかし、ヘルプやポインタは非常に役に立ちます。

4

1 に答える 1

2

CodePlex のBlogical Sftp Adapterがこれを機能させ、複製できることに気付きました。

type="baf:Password"パスワード要素を追加するだけです。

ここでスキーマを参照できます。

于 2013-10-29T02:22:47.487 に答える