代码之家  ›  专栏  ›  技术社区  ›  Sylvain

如何在单个请求中传递WCF凭据?

  •  2
  • Sylvain  · 技术社区  · 15 年前

    我有这个约束力:

    <customBinding>
        <binding name="b1">
            <security authenticationMode="UserNameForSslNegotiated">
                <secureConversationBootstrap />
            </security>
            <binaryMessageEncoding/>
            <httpTransport/>
        </binding>
    </customBinding>
    

    当我使用嗅探器查看呼叫时,我看到每个呼叫有3次往返。

    通过查看请求,我发现

    • 消息1的类型 <t:RequestSecurityToken …>
    • 消息2的类型 <t:RequestSecurityTokenResponse…>
    • 消息3是真正的请求

    有没有一种传递凭证和真实信息的方法?

    2010年8月23日更新: 我还没有找到解决这个问题的办法。

    1 回复  |  直到 15 年前
        1
  •  1
  •   Colin Smith    13 年前

    假设你正在使用 HTTPS 对于您的交通工具,您是否尝试过:

    UserNameOverTransport ,以便使用“安全”传输来交换凭据,而不是尝试设置“安全”消息通道。

    还有你的 secureConversationBootstrap 是多余的,因为它只在 authenticationMode="SecureConversation"

    <customBinding>
        <binding name="b1">
            <security authenticationMode="UserNameOverTransport"/>
            <binaryMessageEncoding/>
            <httpsTransport/>
        </binding>
    </customBinding>
    

    如果你想让一切都清楚,那么使用 <httpTransport/>

    推荐文章