WCF net.tcp 传输安全 - 如何在客户端上禁用服务器证书验证

2024-04-16

我正在使用 WCF 进行一些测试,目前我们有以下服务器设置(简化的配置):

<netTcpBinding>
  <binding name="netTcp" ... >
     <security mode="Transport">
        <transport clientCredentialType="None"/>
     </security>
  </binding>
</netTcpBinding>

...

<serviceBehaviors>
    <behavior name="defaultServiceBehavior">
        <serviceCredentials>            
           <serviceCertificate 
                    findValue="OurCert" 
                    storeLocation="LocalMachine" 
                    storeName="My" 
                    x509FindType="FindBySubjectName"/>                      
        </serviceCredentials>
    </behaviour>
</serviceBehaviors>

以及以下客户端配置:

<endpointBehaviors>
    <behavior name="NoRevNoValid">
        <clientCredentials>
            <serviceCertificate>
                <authentication certificateValidationMode="None"
                                revocationMode="NoCheck"/>
            </serviceCertificate>
       </clientCredentials>
    </behavior>
</endpointBehaviors>

因此,其想法是服务器证书用于加密数据,但客户端无需验证证书(客户端无论如何都不会拥有证书的 CA)。

但是,此配置不会阻止客户端验证证书。它仍然尝试遍历信任链并寻找撤销列表。

我找到了这个链接声明certificateValidationMode属性不适用于net.tcp绑定 http://social.msdn.microsoft.com/Forums/en/wcf/thread/7ebb41e3-5061-4c2c-b26a-4d4b5eb9d24c.

我已经考虑过处理ServicePointManager.ServerCertificateValidationCallback事件,但再次看来这仅适用于基于 Http 的绑定。

据推测,这些都是因为在使用 net.tcp 绑定时,传输安全性的处理超出了应用程序的范围?

还有其他方法可以强制不进行证书验证吗?


经过大量测试后,声明“certificateValidationMode”属性不适用于 net.tcp 绑定的链接似乎是错误的!

此选项仍然适用于 net.tcp 绑定。

但是,用于 net.tcp 传输安全的证书仍会加载,并且仍会尝试解析其 CA 和 CRL。我使用的证书包含 CRL 和 CA 的 URL,因此证书存储每次都会解析这些 URL(URL 不可用),即使 WCF 配置随后表示忽略证书是否无效。

所以答案是 WCF 配置的certificateValidationMode 仍然适用,只是证书仍将由证书存储“解析”。对于大多数人来说这不应该是一个大问题,但我将针对证书所具有的 URL 进行一些进一步的测试,因为这些 URL 在连接过程中会导致我们出现严重的延迟问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WCF net.tcp 传输安全 - 如何在客户端上禁用服务器证书验证 的相关文章

  • 具有用于角色授权的空间的 AD 组

    我正在尝试获得与 AD 组合作的角色授权 然而 由于它包含空格 它似乎不起作用 我尝试过没有空格的 AD 组 它们工作得很好
  • C# 模拟接口与模拟类

    我是 net 中的最小起订量框架的新手 根据我的在线研究 似乎有两种方法可以使用这个框架 要么模拟接口 要么模拟具体类 似乎在嘲笑具体类时 只有virtual方法可以被嘲笑 就我而言 我只想模拟实现接口的类的几个方法 例如 如果我们有以下内
  • 有没有类似 ActiveRecord::Migration for .NET 的东西?

    我玩过 ruby on Rails ActiveRecord Migration类 我喜欢保持数据库模式版本化是多么容易 我想在我的 ASP NET 项目中做类似的事情 我想知道是否有人听说过一个可以执行以下操作的工具ActiveRecor
  • 无法更新 .mdf 数据库,因为该数据库是只读的(Windows 应用程序)

    我使用 C 创建了一个数据库 Windows 应用程序 我的应用程序在 Windows XP 上成功运行 但在 Vista 或 Windows 7 系统上无法正确执行 我的应用程序显示类似以下内容的消息 无法更新 mdf 数据库 因为该数据
  • Parallel.For 和 Break() 误解?

    我正在研究 For 循环中的并行性中断 看完之后this http tipsandtricks runicsoft com CSharp ParallelClass html and this http reedcopsey com 201
  • 专家 C#/.Net/WPF 开发人员应该了解哪些知识? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 无论表单上的焦点控件如何,如何捕获 Keys.F1?

    我使用了 KeyDown 事件和一些简单的代码 例如if e KeyCode Keys F1 捕获在表单上按下 F1 但如果表单上有一些文本框 或者表单上有一些带有 Dock Fill 的电子表格 则上面的代码将毫无用处并且不执行任何操作
  • 在 C# 中将 ulong 映射到 long ?

    我正在尝试将 ulong 映射到 long 反之亦然 将 uint 映射到 int 反之亦然 如下所示 为了将值保存在具有签名类型的 MS SQL 数据库中仅限整数和大整数 我这样做是因为我必须检查 在数据库中 一个数字 uint ulon
  • 父窗体中的居中消息框[重复]

    这个问题在这里已经有答案了 有没有一种简单的方法可以在 net 2 0中将MessageBox居中于父窗体中 我在 C 中确实需要这个并发现中心消息框 C http bytes com topic c sharp answers 26712
  • 使用 wmi 获取活动会话(Win32_LogonSession 还返回非活动/旧会话)

    有没有办法只显示 wmi 的活动会话 问题是 Win32 LogonSession 还显示不活动 断开连接的会话 ManagementScope scope new ManagementScope ManagementPath Defaul
  • 如何暂时暂停实时数据图表的绘制更新

    我想要 暂停 图表的系列更新来完成一些工作 就像我有一个按钮 当我单击它时 它将暂停图表更新 然后当我单击恢复按钮时 它将更新系列中的所有暂停点 我知道关于 chart1 Series SuspendUpdates 但它似乎不适合我 我使用
  • 查询 dns 别名

    我找到了一些code http msdn microsoft com en us library system net dns gethostbyaddress VS 71 aspx来自 msdn 站点 下面包含代码 看起来它将返回给定服务
  • 在这种情况下垃圾收集器会做什么? [复制]

    这个问题在这里已经有答案了 我试图了解 GC 将如何行动的两种情况 1 有两个对象 object1 和 object2 object1 引用了 object2 object2 引用了 object1 现在 这两个对象都没有被使用 GC 可以
  • & 在 xml 文件中算作一个还是多个字符?

    我正在使用的 XML 模式具有特定的字符串字符长度 所以我可能有一个类似的字符串 Jim Mary 在 C 中是 10 个字符 但是当它写入 xml 时 它会变成 Jim amp Mary 如果 XML 模式规定字符串最多只能有 10 个字
  • .NET 迭代器包装抛出 API

    我有一个带有 API 的类 它允许我请求对象 直到它抛出一个IndexOutOfBoundsException 我想将它包装到一个迭代器中 以便能够编写更清晰的代码 但是 我需要捕获异常以停止迭代 static IEnumerable It
  • 在服务器桌面会话上捕获屏幕

    我开发了一个 GUI 测试框架 可以按计划对我们公司网站进行集成测试 当出现问题时 它会截取桌面等内容 它在专用 Windows Server 2008 上的登录用户上运行 无人值守 问题是在我已断开远程桌面会话连接的桌面上截取屏幕截图 我
  • 在 WCF Web 编程模型中,如何编写具有一组查询字符串参数(即具有相同名称)的操作协定?

    使用 WCF Web 编程模型 可以指定一个操作契约 如下所示 OperationContract WebGet ResponseFormat WebMessageFormat Xml UriTemplate SomeRequest qs1
  • System.IO.IOException:由于意外>数据包格式,握手失败?

    有谁知道这意味着什么 System Net WebException 底层连接已关闭 发送时发生意外错误 gt System IO IOException 由于意外 握手失败 数据包格式 在 System Net Security SslS
  • 使用 WF 的多线程应用程序的错误处理模式?

    我正在写一个又长又详细的问题 但只是放弃了它 转而选择一个更简单的问题 但我在这里找不到答案 应用程序简要说明 我有一个 WPF 应用程序 它生成多个线程 每个线程执行自己的 WF 处理线程和 WF 中的错误 允许用户从 GUI 端进行交互
  • 为什么文件更新时“如果较新则复制”不复制文件?

    我在 Visual Studio Express 中有一个解决方案 如下所示 The LogicSchemaC 中的类 将在运行时解析指定的 XML 文件 以下是在main的方法Program cs LogicSchema ls new L

随机推荐

  • 如何使用 CSS 更改图标图像的颜色? [复制]

    这个问题在这里已经有答案了 我想弄清楚如何更改半透明和半纯色图像的颜色 我希望能够更改白色的颜色 这样我就可以添加悬停 并添加以动态方式更改 WordPress 中颜色的功能 使用 Photoshop 来填充图像不是一个选项 因为我要在我的
  • Android 将 Px 转换为 Dp(视频宽高比)[重复]

    这个问题在这里已经有答案了 可能的重复 在android中将像素转换为dp https stackoverflow com questions 4605527 converting pixels to dp in android 我正在尝试
  • 有没有办法为 Heroku Toolbelt 设置默认应用程序?

    我在heroku上有多个app git远程 我想知道是否可以配置一个默认应用程序 这样 每当我忘记指定应用程序时 app 工具带会使用它 您可以设置heroku remote在存储库的 Git 配置中键入默认远程名称 例如 如果您的遥控器被
  • Gradle:战争任务有冲突的包含/排除

    我正在尝试使用 Gradle 构建一个 war 文件 但遇到了一个问题 即排除一个目录并包含另一个恰好具有相同名称但父目录不同的目录 请注意 在下面的第一个代码示例中 两者都没有css 目录将包含在最终版本中war文件 我假设是因为 Gra
  • 如何设置 JSlider 的大小?

    我在网上搜索了此问题的解决方案 但没有找到任何有效的方法 我在 JPanel 中有一个垂直 JSlider 它使用 GridBagLayout 和 GridBagConstraints 将对象定位在面板上 目前我有以下代码 gbc grid
  • 有返回值的 C void 函数

    据我所知 returnvoid 函数中的语句将引发错误 但在下面的程序中 情况并非如此 这里显示的输出是1 怎么会 main int i 5 printf d fun fun fun i void fun int i if i 2 retu
  • R 图中行的恒定绝对间距

    In R 我该如何调整height绘图设备的价值 例如 windows or png 以便点之间的绝对间距保持不变 这是一个例子来说明我的意思 n lt 10 windows width 4 height 4 par xpd NA plot
  • 带水平滚动的 C3 / D3 条形图

    我正在创建一个 c3 条形图 其中每个条形代表在给定的一周内加入某个计划的人数 数据只是一个对象数组 其中包含 week of people week of people 等 理想情况下 我希望图表中显示最近 6 周的数据 但我希望能够水平
  • Windows 上 Python 3.4 中的 Tkinter 在退出时不会将内部剪贴板数据发布到 Windows 剪贴板

    我使用以下代码将小脚本的结果放置在剪贴板中 from tkinter import Tk r Tk r withdraw r clipboard clear r clipboard append Result 它在 Python 3 3 5
  • 如何使用 Celery、RabbitMQ 和 Django 确保每个用户的任务执行顺序?

    我正在运行 Django Celery 和 RabbitMQ 我想要实现的是确保与一个用户相关的任务按顺序执行 具体来说 一次执行一个 我不希望每个用户执行任务并发 每当为用户添加新任务时 它应该取决于最近添加的任务 如果此类型的任务已为此
  • 和发动机施加力

    有谁知道为什么 applyforce 只适用于我的精灵之一 此外 当我按下其他精灵时 它也会对单个精灵施加力 nextTile 方法工作正常 enter code herecom martynnorman jude 包 作者尼古拉斯 格拉姆
  • css - 垂直滚动条删除

    下面是带有左右附加图像的菜单行的代码 我需要这样的行为 当屏幕宽度的分辨率从 960px 到 1398px 时 左右 div 同时隐藏 这段代码完全符合我的要求 问题是 在低屏幕宽度 960px 到 1398px 上 它会向浏览器添加水平滚
  • Facebook Messenger Bot 可以与群组中的两个或更多人聊天吗?

    所有消息机器人一次只与一名用户直接交互吗 机器人可以加入两人或多人组成的群组并与他们交谈吗 目前 Facebook Messenger 机器人只能在一对一的基础上工作 原因之一可能是隐私 Facebook 在在群组环境中推出机器人之前非常谨
  • 快速获取当前设备在 wifi 和蜂窝网络中的 IP 地址

    func getIPAddress gt String var address String var ifaddr UnsafeMutablePointer
  • 使用 PowerShell 删除文本文件的顶行

    我试图在导入之前删除大约 5000 个文本文件的第一行 我对 PowerShell 还很陌生 所以不确定要搜索什么或如何解决这个问题 我当前使用伪代码的概念 set content file get content unless line
  • 使用 jQuery 和 Select2 时“按键”事件无法正常工作

    我有一个论坛 我在其中更改选项卡的功能以进入 当用户按下 Enter 下一个输入字段时获得焦点并以某种方式 iImanage 打开 select2 选择框focusin事件 因此选择 2 框打开 但是 当我选择该值并在 selec2 选择框
  • Laravel/Symfony:无法加载“app”配置文件

    升级我的家园并安装我的软件包后 我遇到了一个奇怪的错误 通话中php artisan输出如下 In LoadConfiguration php line 68 Unable to load the app configuration fil
  • opencv边界框问题

    我有一个图像需要在周围绘制一个边界框 我正在尝试使用本文底部的代码 我遇到的问题是我尝试模糊蓝色框形状以删除其细节 例如 cv2 blur img 20 20 但模糊图像似乎没有足够好的边缘来生成边界框 我发现 如果我将下面的代码与具有与下
  • Spring Java 应用程序找不到密钥库文件

    我正在尝试设置一个简单的 Spring 应用程序来使用 SSL 并将其托管在 Digital Ocean 上 为什么我的应用程序找不到密钥库文件 我设置的 Droplet 基于 Ubuntu 18 04 我使用 Letscrypt 来获取证
  • WCF net.tcp 传输安全 - 如何在客户端上禁用服务器证书验证

    我正在使用 WCF 进行一些测试 目前我们有以下服务器设置 简化的配置