- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是 WCF 的新手,我已经能够使用 bacishttpbinding
成功地使用服务,我需要能够使用嗅探器查看服务和客户端之间的数据交换。为此,我假设我不需要在绑定(bind)中有任何安全性,每次我尝试在我的绑定(bind)中没有安全性时,我都会得到以下信息:The provided URI scheme 'https' is invalid;应为“http”。
如何将服务和客户端配置为没有安全性,以便我可以嗅探纯 XML 中的数据传输?
服务配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0"/>
<customErrors mode="Off"/>
</system.web>
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="All" propagateActivity="true">
<listeners>
<add name="xml"/>
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging" switchValue="All">
<listeners>
<add name="xml"/>
</listeners>
</source>
</sources>
<sharedListeners>
<add name="xml" type="System.Diagnostics.XmlWriterTraceListener" initializeData="D:\Technology\Production\wwwRoot\medical\log\Log.svclog"/>
</sharedListeners>
<!--
<sources>
<source name="System.ServiceModel"
switchValue="All"
propagateActivity="true">
<listeners>
<add name="traceListener"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="D:\Technology\Production\wwwRoot\medical\log\Traces.svclog" />
</listeners>
</source>
</sources>
-->
</system.diagnostics>
<system.serviceModel>
<diagnostics>
<messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" maxMessagesToLog="25000">
<filters>
<clear/>
</filters>
</messageLogging>
</diagnostics>
<behaviors>
<serviceBehaviors>
<behavior name="SecureBehave">
<serviceCredentials>
<clientCertificate>
<authentication certificateValidationMode="PeerTrust"/>
</clientCertificate>
<userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="HIBridgeLib.HIBridgeService.Security.MessageSecurityValidator, HIBridgeLib"/>
<!--
<serviceCertificate findValue="WCfServer"
storeLocation="CurrentUser"
storeName="My"
x509FindType="FindBySubjectName" />
-->
</serviceCredentials>
<serviceMetadata httpGetEnabled="True" httpsGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="True"/>
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<wsHttpBinding>
<binding name="HIBridge_SSLBinding" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647">
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Certificate" proxyCredentialType="None" realm=""/>
<message clientCredentialType="UserName" negotiateServiceCredential="True" establishSecurityContext="True"/>
</security>
</binding>
</wsHttpBinding>
<basicHttpBinding>
<binding name="HIBridge_BasicBinding" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647">
<security mode="Transport">
<transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
</security>
<readerQuotas maxStringContentLength="2147483647"/>
</binding>
</basicHttpBinding>
</bindings>
<services>
<service name="HIBridgeWebService.HIBridgeService" behaviorConfiguration="SecureBehave">
<endpoint address="basic" binding="basicHttpBinding" bindingConfiguration="HIBridge_BasicBinding" contract="HIBridgeLib.HIBridgeService.IHIBridgeService"></endpoint>
<endpoint address="ws" binding="wsHttpBinding" bindingConfiguration="HIBridge_SSLBinding" contract="HIBridgeLib.HIBridgeService.IHIBridgeService"></endpoint>
<host>
<baseAddresses>
<add baseAddress="https://172.30.20.133:1125/HIBridge/HIBridgeService.svc"/>
</baseAddresses>
</host>
</service>
</services>
</system.serviceModel>
<connectionStrings>
<clear/>
<add name="DBConnectionString" connectionString="Data Source=(local)\SQLEXPRESS;Initial Catalog=HIBridge;User ID=CF;Password=C01dFu$i0n" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.webServer>
<handlers accessPolicy="Read, Script"/>
<directoryBrowse enabled="false"/>
<defaultDocument>
<files>
<clear/>
<add value="Default.aspx"/>
</files>
</defaultDocument>
<httpErrors>
<clear/>
</httpErrors>
</system.webServer>
</configuration>
客户端配置如下:
System.ServiceModel.BasicHttpBinding basicHTTPSBinding = new System.ServiceModel.BasicHttpBinding();
basicHTTPSBinding.Name = "HIBridge_BasicBinding";
basicHTTPSBinding.OpenTimeout = TimeSpan.FromMinutes(1);
basicHTTPSBinding.CloseTimeout = TimeSpan.FromMinutes(1);
basicHTTPSBinding.SendTimeout = TimeSpan.FromMinutes(1);
basicHTTPSBinding.ReceiveTimeout = TimeSpan.FromMinutes(10);
basicHTTPSBinding.BypassProxyOnLocal = false;
basicHTTPSBinding.HostNameComparisonMode = System.ServiceModel.HostNameComparisonMode.StrongWildcard;
basicHTTPSBinding.MaxBufferPoolSize = 2147483647;
basicHTTPSBinding.MaxReceivedMessageSize = 2147483647;
basicHTTPSBinding.MessageEncoding = System.ServiceModel.WSMessageEncoding.Text;
basicHTTPSBinding.TextEncoding = Encoding.UTF8;
basicHTTPSBinding.UseDefaultWebProxy = true;
basicHTTPSBinding.AllowCookies = false;
basicHTTPSBinding.Security.Mode = System.ServiceModel.BasicHttpSecurityMode.Transport;
basicHTTPSBinding.Security.Transport.ClientCredentialType = System.ServiceModel.HttpClientCredentialType.None;
basicHTTPSBinding.Security.Transport.ProxyCredentialType = System.ServiceModel.HttpProxyCredentialType.None;
basicHTTPSBinding.Security.Transport.Realm = "";
System.ServiceModel.EndpointAddress endpointAddress = null;
if (LocalMedCart.CartProfile.ConsoleHostname.Contains("/HIBridge/HIBridgeService.svc"))
endpointAddress = new System.ServiceModel.EndpointAddress(LocalMedCart.CartProfile.ConsoleHostname + "/basic");
else
endpointAddress = new System.ServiceModel.EndpointAddress(string.Format("https://{0}:{1}/HIBridge/HIBridgeService.svc/basic", LocalMedCart.CartProfile.ConsoleHostname, LocalMedCart.CartProfile.CommunicationPort));
HIBridgeLib.HIBridgeService.Security.PermissiveCertificatePolicy.Enact(string.Format("CN={0}", LocalMedCart.CertificateName));
serviceProxy = new HIBridgeLib.HIBridgeService.HIBridgeServiceProxy(basicHTTPSBinding, endpointAddress);
serviceProxy.ClientCredentials.UserName.UserName = "username";
serviceProxy.ClientCredentials.UserName.Password = "password";
最佳答案
如果将 WCF 绑定(bind)更新为“关闭”安全性,则需要相应地更新基地址。
例如,更改以下内容:
<add baseAddress="https://172.30.20.133:1125/HIBridge/HIBridgeService.svc"/>
到
<add baseAddress="http://172.30.20.133:1125/HIBridge/HIBridgeService.svc"/>
关于c# - 没有安全性的 BasicHttpBinding,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27841721/
我有 WCF 服务,在一个 ServiceHost 内的不同端点使用 BasicHttpBinding 和 NetTcpBinding。 NetTcp 使用的是从文件加载的自签名证书,一切都很好,直到
我有一个在 ASP.NET 4.0 上运行的 Web 服务,并在 web.config 中为 BasicHttpBinding 定义了默认绑定(bind)配置: ... ..
我是 WCF 的新手,我已经能够使用 bacishttpbinding 成功地使用服务,我需要能够使用嗅探器查看服务和客户端之间的数据交换。为此,我假设我不需要在绑定(bind)中有任何安全性,每次我
我必须遵循以下代码: BasicHttpBinding binding = new BasicHttpBinding (); Uri baseAddress = new Uri ("URL.svc")
我们目前有一个 asmx webservice,它公开了一个方法来对 Sql 数据库进行各种更新,内部包装在 SqlTransaction 中。 我正在 WCF 中重写此服务,我们希望将现有方法拆分为
我有一个使用 WCF 让两个应用程序相互通信的小型基本工作示例。我的客户端应用程序监听服务器,在配置我的设置的 app.config 文件中有 XML。在编译时硬编码的一项设置是隐藏在 basicHt
如果我想编写一个 Web 服务并将其公开为 WCF 和基本 SOAP,我的数据类型可以只使用数据协定序列化,还是必须使用 XmlSerializer? Microsoft mentions需要 Xml
这个问题已经有答案了: BasicHttpBinding vs WsHttpBinding vs WebHttpBinding (3 个回答) 已关闭 7 年前。 在 WCF 端点中,basicHtt
我应该使用 BasicHttpBinding 的哪些设置,以便我的 WCF 服务尽可能快地获取数据并将数据更新到 SQL 服务器.. 安全不是问题.. 目前我的客户端配置是这样的。它可以工作,但如果可
我想清楚地解释 basicHttpBinding 的 ReceiveTimeout 在我的客户端会做什么?不是 Web 服务端。 在 MS 文档中非常清楚,此属性对客户端的 WCFBinding 没有
我正在尝试在 Windows 2007 SP1 服务器上将 WCF ServiceHost 作为 NT 服务运行。 ServiceHost 负责托管单个服务端点:具有以下地址的 basicHttpBi
所以我正在为 WCF 服务配置端点。我几乎没有整体服务的经验,但是在使用它们的项目中间被扑倒了。我大致了解端点中的每个属性都在做什么,除了一个。 “绑定(bind)配置”。 这是我的代码的模糊版本(实
我正在尝试使用 BasicHttpBinding 在传输级别使用 SSL 证书使 WCF 服务器和客户端相互进行身份验证。以下是服务器的创建方式: var soapBinding = new Basi
我一直在努力将 basicHttpBinding 转换为 customBinding 以让我的客户在网络场上工作。我一直在摸索翻译以下安全部分。 我会向你展示我的翻译,但我所能理解的实际上
我很难将 BasicHttpBinding 转换为自定义绑定(bind)。具体来说,我需要转换安全元素- 任何人都可以帮助在自定义绑定(bind)中编写相同的内
我正在尝试创建一个 Delphi 客户端(Delphi 2006)来与使用 WCF 编写的服务进行通信。服务非常简单,只有一项功能。技术上如下: [ServiceContract (Namespace
WCF 中的 basicHttpBinding 是否支持服务行为中的 PerSession 值? 在哪里可以找到总结每个绑定(bind)及其选项的所有信息的表格? ? 最佳答案 不,由于 HTTP 协
如何配置 XML Web 服务客户端以将 MessageVersion.Soap11WSAddressing10 用于 header 命名空间。目前它使用 MessageVersion.None 命名
WCF 中的 basicHttpBinding 是否支持服务行为中的 PerSession 值? 我在哪里可以找到总结每个绑定(bind)及其选项的所有信息的表格? ? 最佳答案 不,由于 HTTP
我使用带有自定义用户名验证的 wsHttpBinding 为客户端设置 WCF 服务,x.509,但没有 SSL 他们使用的是 PHP 并且完全无法通过 WS 安全性,因此我们的解决方案必须是添加另一
我是一名优秀的程序员,十分优秀!