【问题标题】:How does TraceViewer work with a secured WCF service?TraceViewer 如何与安全的 WCF 服务一起使用?
【发布时间】:2011-04-29 02:16:10
【问题描述】:

嗨!

我有一个通过 TCP 运行的 WCF 服务,具有这样的证书安全性:

<binding name="netTcpUserNameMessageSecurity" portSharingEnabled="True" transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions" hostNameComparisonMode="StrongWildcard" listenBacklog="10" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxConnections="10" maxReceivedMessageSize="2147483647">
                    <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
                    <reliableSession ordered="true" inactivityTimeout="infinite" enabled="false" />
                    <security mode="TransportWithMessageCredential">
                        <transport clientCredentialType="Windows" />
                        <message clientCredentialType="UserName" />
                    </security>
                </binding>

在 TraceViewer 中检查日志时,我可以看到数据是清晰的 xml(未加密)。 TraceViewer 是解密数据还是我真的以明文 xml 发送所有数据,即使我使用证书安全性?

请注意,我在同一台机器上运行服务和客户端,我正在分析的日志来自服务。

最好的问候

【问题讨论】:

    标签: .net wcf security certificate


    【解决方案1】:

    您正在使用在 WCF 之外发生的传输级别加密,因此您的消息日志记录以纯文本形式记录消息。如果您使用消息级加密,那么 WCF 将从传输通道获取加密消息并将其记录(加密),然后它将在安全通道中处理消息并记录(解密)。此日志记录可以在消息日志记录配置中控制 - logMessagesAtTransportLevel 和 logMessagesAtServiceLevel。

    【讨论】:

    • 是的,LogMessageAtTransportLevel 和 logMessageAtServiceLevel 似乎是一个不错的起点。但我实际上已经尝试过这些,并且日志很奇怪,因为我们已经测试了wireshark,使用这个工具我们可以看到通信何时被编码,而不是。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-23
    • 1970-01-01
    • 2011-03-06
    相关资源
    最近更新 更多