- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 WCF 服务,它使用具有消息安全性和用户名身份验证的 NetTcpBinding。在此之前,我使用 WsHttpBinding 但我切换到 NetTcp,因为我可以使用回调。
我的服务配置如下所示:
<service behaviorConfiguration="WcfServiceLibrary1.ServiceBehavior" name="WcfServiceLibrary1.Service">
<endpoint
address="net.tcp://localhost:9000/Design_Time_Addresses/WcfServiceLibrary1/Service/"
binding="netTcpBinding"
bindingConfiguration="NetTCPbinding"
contract="WcfServiceLibrary1.IService"
name="NetTCPBinding">
</endpoint>
<host>
<baseAddresses>
<add baseAddress="http://localhost:8732/Design_Time_Addresses/WcfServiceLibrary1/Service/" />
</baseAddresses>
</host>
</service>
</services>
<bindings>
<netTcpBinding>
<binding name="NetTCPbinding">
<security mode="Message">
<message clientCredentialType="UserName"/>
</security>
</binding>
</netTcpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="WcfServiceLibrary1.ServiceBehavior">
<serviceCredentials>
<serviceCertificate findValue="ServerCert"
storeLocation="CurrentUser"
storeName="TrustedPeople"
x509FindType="FindBySubjectName" />
<userNameAuthentication
userNamePasswordValidationMode="MembershipProvider"
membershipProviderName="CustomMembershipProvider" />
</serviceCredentials>
<!-- To avoid disclosing metadata information,
set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="True" />
<!-- To receive exception details in faults for debugging purposes,
set the value below to true. Set to false before deployment
to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="true" />
<serviceAuthorization principalPermissionMode="UseAspNetRoles" roleProviderName="MyRoleProvider" />
<!-- Logs when an authentication failure -->
<serviceSecurityAudit auditLogLocation="Application"
suppressAuditFailure="true"
serviceAuthorizationAuditLevel="Failure"
messageAuthenticationAuditLevel="SuccessOrFailure" />
</behavior>
</serviceBehaviors>
</behaviors>
<behaviors>
<endpointBehaviors>
<behavior name="messageSecurityBehavior">
<clientCredentials>
<clientCertificate storeLocation="CurrentUser"
storeName="TrustedPeople"
x509FindType="FindBySubjectName"
findValue="ClientCert" />
<serviceCertificate>
<authentication certificateValidationMode="None" />
</serviceCertificate>
</clientCredentials>
</behavior>
</endpointBehaviors>
</behaviors>
<bindings>
<netTcpBinding>
<binding name="NetTCPBinding" closeTimeout="00:01:00" openTimeout="00:01:00"
receiveTimeout="00:10:00" sendTimeout="00:01:00" transactionFlow="false"
transferMode="Buffered" transactionProtocol="OleTransactions"
hostNameComparisonMode="StrongWildcard" listenBacklog="10"
maxBufferPoolSize="524288" maxBufferSize="65536" maxConnections="10"
maxReceivedMessageSize="65536">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<reliableSession ordered="true" inactivityTimeout="00:10:00"
enabled="false" />
<security mode="Message">
<transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
<message clientCredentialType="UserName" />
</security>
</binding>
</netTcpBinding>
</bindings>
<client>
<endpoint address="net.tcp://localhost:9000/Design_Time_Addresses/WcfServiceLibrary1/Service/"
binding="netTcpBinding" bindingConfiguration="NetTCPBinding"
contract="IService" name="NetTCPBinding" behaviorConfiguration="messageSecurityBehavior">
<identity>
<certificate encodedValue="AwAAAAEAAAAUAAAAQerRMlEg2a66HMxD/8El6LutassgAAAAAQAAAOwBAAAwggHoMIIBVaADAgECAhAzOWVhNWUzM2Y5MzUwNzFhMAkGBSsOAwIdBQAwIjELMAkGA1UEBhMCVVMxEzARBgNVBAMTClNlcnZlckNlcnQwHhcNMTIwMTE3MTk1NDQ2WhcNMjUwOTI1MTk1NDQ2WjAiMQswCQYDVQQGEwJVUzETMBEGA1UEAxMKU2VydmVyQ2VydDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAs6SaYi3pDDIOuXeCe7HgOOTvOpwajKdxM8MzZpkK3l+DqkriMQUx9DT5I9WZvNK5FMuorLueG5adWkTgWpvttC7Sp8CJ//A+PbPewiAU4L3Txln6dX3jHZFd99LY/58/2AzY8ln2NykQFzz1DdmVeyShG9ktVsX82Ogz60lzpeUCAwEAAaMnMCUwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDgYDVR0PBAcDBQD6AAAAMAkGBSsOAwIdBQADgYEAMGQ7fIW34CYjybCc0gWOLaxeRFiNHmX/dgxqPIWGgg3uc0avz1GHJ3uMHcPAZBKcw9QpbccALpqZxZzkDBxufWjRni+8XCzeAKUqaB7XaJTYYUYBbz7/2+EuaAw7/vF4JTtZGWhPkHZZcX5+Oyo2ktK0z24MfXP2Ggy+IsQJ2JM=" />
</identity>
</endpoint>
</client>
最佳答案
证书指向用于加密消息的 key (我不确定它是直接用作 key 本身,还是用于协商 key )。 AlgorithmSuite 确定 algorithm ,它将使用该 key 来加密消息。
为什么你需要指定一个算法吗?
因为您需要告诉 WCF 它应该如何加密您的消息。使用的算法也在 SOAP 消息中标识,因为接收方必须知道使用什么算法来解密消息。请注意,如果您没有明确设置算法,它仍然会有一个值,NetTcp 的默认 Basic256 ( source )。
如果您启用消息跟踪,您会在 SOAP 正文中看到以下内容,用于服务操作的适当(加密)操作:
<e:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc" />
Basic128
上面会显示
aes128-cbc
在 Algorithm 属性的后一位。
http://schemas.xmlsoap.org/ws/2005/02/trust/...
中会有几个 Action 。范围协商所有安全选项。关于
Message Security in WCF MSDN 页面可以看到 WCF 使用了 WS-Security 规范。有关此规范的更多信息,您可以访问
this page我在哪里找到了
WS-Security 2004 spec (pdf) .如果您的论文需要官方引用,这也可能很有用。
关于WCF NetTcpBinding 安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11960098/
我有一个 WCF 服务,它使用具有消息安全性和用户名身份验证的 NetTcpBinding。在此之前,我使用 WsHttpBinding 但我切换到 NetTcp,因为我可以使用回调。 我的服务配置如
我正在运行 WCF 服务,除其他外,它用作网站的后端。因为网站和 WCF 服务都运行在同一台机器上,为了性能,我设置了一个 netTcpBinding。 现在的问题是,因为它们存在于同一个盒子上,我真
我正在使用 wcf nettcpbinding 传输文件(使用流媒体),但我无法传输大于 650 MB 的文件。这是异常(exception):“套接字连接已中止。这可能是由于处理您的消息时出错或远程
Book Essential WCF 声称 NetTcpBinding.MaxConnections 限制到端点的连接数。因此,如果属性值设置为 10,则该端点将只允许 10 个并发连接。 可是下面的
我有一个使用 netTcpBinding 和回调方法的主机/客户端 WCF 服务和客户端。
谁能解释这个错误的含义: The .Net Framing mode being used is not supported by blah blah yadda 我找不到任何有值(value)的信息
我在尝试解决 WCF 中的设置困境时遇到了以下问题... 我使用 NetTcp 绑定(bind)创建了 WCF 客户端-服务器服务。我没有对安全设置进行任何更改,并且在一台计算机上运行时它运行得非常好
我有一个作为 Windows 服务托管的 WCF 服务,客户端是一个使用 WCF 服务方法的 ASP.Net 应用程序。 在实现安全性的过程中,我很困惑 netTcpBinding/wsHttpBin
我知道已经有很多关于此问题的问题,但没有回复解决我的问题。 我在运行的服务器上有一个 NetTcpBinding,并且时不时地(并非总是如此,例如 20 到 60 次调用中的 1 次,完全随机)我在客
我正在使用 WCF 与多个服务器通信。 对于我的本地服务器,netTcpBinding 工作正常,没有问题。 但是当我尝试使用 app.config 中的以下 netTcpBinding 连接到我的远
我需要保护使用 netTcpBinding 并直接与基于 Windows 窗体的应用程序连接的 WCF 服务。我只需要在传输层保护它。 我非常确定它在本地运行,即我可以在本地运行该服务,并与客户端连接
NetTCPBinding 是否支持回调?如果是这样,请将我重定向到任何适当的示例。谢谢 最佳答案 考虑使用 Duplex Messaging .NetTCPBinding 原生支持它,与 HTTP
我有一个由 Windows 服务托管的 WCF 服务。它与网络中的零到多个客户端具有发布/订阅关系。绑定(bind)是 net.TCP。 WCF 服务向客户端提供“订阅”方法,以便客户端可以注册回调处
我在使用 netTcpBinding 时异步执行对 WCF 服务的调用时遇到问题。 例如。我有一个简单的服务,方法如下: public class Service1 : IService1
我有一个处理一些敏感数据的 WCF 服务。我想确保我不让这些数据暴露,所以我正在查看 netTCPBinding...主要是因为我可以控制它运行的网络并且性能是重中之重。 我知道有两个区域可以加密:传
我有一个基本的好友列表类型的应用程序,它是 WCF 中的发布/订阅交易。我的问题是其中一两个调用长时间运行,这会阻塞整个服务器应用程序(GUI 更新等)。 这是我的代码: [ServiceContra
我通常在我的服务中使用 HTTP 绑定(bind)。 我读到 net.tcp 绑定(bind)工作得更快,但是我不太确定我应该什么时候使用它? 什么是最佳实践,有什么缺点吗? 谢谢 最佳答案 NetT
使用 WCF 制作客户端/服务器样式的应用程序,但我找不到任何说明 NetTcpBinding 是否提供持久连接的文档? 我希望我的客户端一次连接并与服务器保持连接数周。 (是的,我知道我需要处理断开
我使用 NetTcpBinding 中的 Streamed TransferMode 和 System.IO.Stream 对象编写了一个可以转换任何大小文件的 WCF 服务。 在运行性能测试时,我发
我正在使用具有“传输”安全性(“Windows”凭据和“EncryptAndSign”保护)的 netTcpBinding。我已经知道 Kerberos(在 SPNEGO 之后)用于验证客户端和服务器
我是一名优秀的程序员,十分优秀!