首页
学习
活动
专区
圈层
工具
发布

谈谈WCF的客户端认证

对于基于Internet的应用,基于用户名和密码的认证方式是最为常用的,而WCF为你提供了不同模式的用户名认证方式。首先还是从用户凭证的表示说起。...前者将用户存储于SQL Server数据库中,而后者则直接建立在AD之上,本实例采用SqlMembershipProvider,在前面一个实例演示中,我们创建了以计算服务为场景的解决方案,现在我们直接沿用它...而所有应用记录维护在aspnet_Applications这么一个表中。现在我们需要通过执行下面一段SQL脚本在该表中添加一条表示我们应用的记录。...到目前为止,在我们创建的数据库中并没有用户帐户记录。为了演示认证的效果,我们必须创建相关用户帐户记录。为了省事,我直接将相关的代码写在了服务寄宿的代码中。...在下面的代码中,我进行了两次服务调用。但是创建服务代理对象的ChannelFactory被设置了不同的用户名凭证。

1.3K100
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    《我的WCF之旅》博文系列汇总

    [第9篇] 如何在WCF中使用tcpTrace来进行Soap Trace 无论对于Web Service还是WCF,Client和Service之间交互的唯一形式是通过发送和接收Soap Message...在这些工具之中,我觉得最好用的就是Microsoft Soap Toolkit中的Soap Trace Utility和tcpTrace。我们今天就来讲讲如何在WCF中使用tcpTrace这个工具。...[第10篇] 如何在WCF进行Exception Handling 在任何Application的开发中,对不可预知的异常进行troubleshooting时,异常处理显得尤为重要。...但是由于各个Service是自治的,如果一个Service调用另一个 Service,在服务提供方抛出的Exception必须被封装在Soap Message中,方能被处于另一方的服务的使用者获得、从而进行合理的处理...我们今天就来谈谈在WCF中如何使用MSMQ。

    57510

    我的WCF之旅(9):如何在WCF中使用tcpTrace来进行Soap Trace

    在我们对Web Service和WCF进行深入学习的时候,借助一些Soap Trace 工具对Soap Message进行深入剖析是非常有必要的。...在这些工具之中,我觉得最好用的就是Microsoft Soap Toolkit中的Soap Trace Utility和tcpTrace。我们今天就来讲讲如何在WCF中使用tcpTrace这个工具。...按照面向服务的原则,服务具有高度的自治性(Automation),Soap Message一旦被Service发送出去,就不能再被该Service所控制,所以Soap来说,它需要具有高度的自描述性(Self-Describing...在WCF中通过ClientViaBehavior实现这样的功能,我将在 后面讲到。...而我们今天所介绍的通过tcpTrace来获取Soap的情况下,tcpTrace实际是就是充当了Intermediary Node的角色。 我们现在就来介绍如果使用tcpTrace。

    1.2K80

    《我的WCF之旅》博文系列汇总

    [第9篇] 如何在WCF中使用tcpTrace来进行Soap Trace 无论对于Web Service还是WCF,Client和Service之间交互的唯一形式是通过发送和接收Soap Message...在这些工具之中,我觉得最好用的就是Microsoft Soap Toolkit中的Soap Trace Utility和tcpTrace。我们今天就来讲讲如何在WCF中使用tcpTrace这个工具。...[第10篇] 如何在WCF进行Exception Handling 在任何Application的开发中,对不可预知的异常进行troubleshooting时,异常处理显得尤为重要。...但是由于各个Service是自治的,如果一个Service调用另一个 Service,在服务提供方抛出的Exception必须被封装在Soap Message中,方能被处于另一方的服务的使用者获得、从而进行合理的处理...我们今天就来谈谈在WCF中如何使用MSMQ。

    77290

    WCF 4.0路由服务Routing Service

    在面向服务的应用系统中,最重要的概念就是消息,消息的传输是一个非常重要的问题。而在大多数情况下,消息要经历多个网络节点,这里会涉及到消息路由问题。...Web服务路由规范(WS-Routing)定义了路由SOAP消息的机制。SOAP是一个轻量级的有线传输协议,定义了一系列传输交换机制,用来传输在应用层协议上使用的方法调用。...我们现在来了解一下WCF如何调用一个特定的服务方法的。这也是WCF路由服务涉及到的重要内容。 我们知道,在客户端,我们可以通过代理类来调用一个服务的方法。...但是这个消息又是如何在服务端调用到特定的方法的呢? 在WCF中,每个服务端点实际上有两个地址: 逻辑地址:逻辑地址(“To”)是 SOAP 消息的目标地址。...前面的SOAP中的Action值,是一个消息调度的方式。 当传入消息时,WCF使用消息过滤器器确定匹配端点。我们也可以自己定义消息过滤器器类型。WCF对于自定义消息过滤器器的支持,带来了很大的灵活性。

    1.6K80

    Self Host模式下的ASP. NET Web API是如何进行请求的监听与处理的?

    WCF的消息处理管道的缔造者是作为终结点三要素之一的Binding。Binding不仅仅为服务端创建用于接收请求回复响应的管道,同时也为客户端创建发送请求接收响应的管道。...如果读者对此比较感兴趣,可以参阅《WCF的绑定模型》。由于ASP.NET Web API只是利用HttpBinding创建服务端消息处理管道,所以我们只讨论Binding的服务端模型。 ?...现在我们就来讨论一下ASP.NET Web API在Self Host模式下使用的HttpBinding由哪些BindingElement构成。 ?...ClientCredentialType表示客户端采用的用户凭证类型,而UserNamePasswordValidator和X509CertificateValidator属性值分别在用户凭证为“用户名...现在我们直接利用浏览器对定义在ContactsController中的两个Action方法Get发起请求,通过注册的HttpRoute和“请求的HTTP方法直接作为Action名称”的原理,我们使用的URL

    2K60

    利用WCF改进文件流传输的三种方式

    WCF在跨域传输使用了两种模型的方法调用:一种是同步模型,这种模型显然对那些需要大量操作时间的方法调用(如从数据库中获取大量数据时)是一种痛苦的选择。...在WCF中引入了一种专门针对数据流进行优化编码的MTOM模型。下面我们使用编码模型和调用模型三种方式来改写文件流的传输,以提高WCF应用程序的性能。...所以利用这种编码在传输信道之间传输可以显著提高传输性能。在WCF中MTOM模型的操作契约中只能使用单个Stream对象作为参数或者返回类型。 ?...这种模型的特点如图所示: 1.1实现服务契约 服务契约是服务所支持的操作、使用的消息交换模式和每一则消息的格式,它控制消息被格式化的方式,在这里由于要使用MTOM编码消息,所以在操作契约中必须要以单一的...,后来我在分析了Windows Trace Viewer的消息包,发现在用异步方法时,整个过程只用两个消息来回,这就意味着第一次的SOAP包是在把SOAP消息加上MTOM编码的文件流作为附件一起发送的,

    1.5K60

    WCF传输安全(Transfer Security)的基本概念和原理:认证(Authentication)

    由于安全体系在整个WCF框架体系中具有极其重大的分量,在接下来的系列文章中,我将深入探讨这一块在我之前的文章中一直不曾触碰的境地。...如果访问者在进行服务调用之前没有验证自己试图访问服务的真实身份,贸然地将自己的网银帐号的密码作为请求发送出去,如果该请求被定位到一个黑客或者流氓软件厂商伪造的服务,它将有可以直接获取到你提供的帐号和密码信息...用户名/密码 我们最常使用的认证方式莫过于采用验证用户名和密码的形式,以致于我们提到身份验证,很多人会想到密码。最为常用的凭证类型,用户名/密码凭证由两个要素构成,即用户名和密码。...在采用用户名/密码认证方式的应用中,认证方一般具有所有用户帐号和密码的列表。...那么WCF服务端对于客户端提供的用户名/密码用户凭证,应该采用怎样的验证手段呢?在基于用户名/密码的验证规则方面,WCF的安全框架体系为你提供了多种方案。

    95290

    原 REST - Representati

    .NET 4 / REST / WCF WCF并非仅仅能用来否剑SOAP服务,他是一个具有通用编程模型并且完全基于插件的通信基础框架。...但是, 当我们构建服务公开端点时, 应该注意安全问题。rest风格的服务只http端点, 因此使用 http (如 HTTPS、证书) 实现的所有安全方面也可以用 rest 实现。...自寄宿web服务中, 大部分的安全方面都应该在代码中得到注意;另一方面, 在 iis 中托管时, iis中设置会处理安全问题。...在 IIS 上部署的服务的安全性 在IIS上承载终结点时, 使用web.config文件进行配置,可以对运行服务的虚拟目录进行配置。我们需要知道客户机配置和虚拟目录配置。...不适合使用 在设计面向服务的体系结构的应用时, 它互联了许多系统并使用了许多传输通道, 所以最好使用 SOAP。

    1.4K70

    认证与凭证:用户名密码认证与Windows认证

    用户凭证的类型决定了认证的方式,WCF支持一系列不同类型的用户凭证,以满足不同认证需求。接下来,我们来简单介绍几种使用比较普遍的凭证以及相应的认证方式。...在采用用户名/密码认证方式的应用中,认证方一般具有所有用户帐号和密码的列表。...虽然在我们进行项目开发的时候,我们也会选择对用户注册时提供的密码进行加密存储,这样可以让用户忘记原来的密码的时候,通过向认证方证明其真实身份的前提下,让认证方通过通过解密返回其原来的密码。...如果你选择了用户名/密码凭证,WCF为你提供了三种认证模式: 将用户名映射为Windows帐号,采用Windows认证; 采用ASP.NET的成员资格(Membership)模块 通过继承UserNamePasswordValidator...[NTLM篇] 在《下篇》中,我们着重讨论基于X.509数字证书的凭证。

    2.6K80

    WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理

    WCF客户端和服务端的框架体系相互协作,使得开发人员可以按照我们熟悉的方式进行异常的处理:在服务操作执行过程中抛出异常(FaultException),在调用服务时捕获异常,完全感觉不到“分布式”的存在...我们可以这样来简单地描述WCF异常处理框架的功能实现:WCF服务端将抛出的FaultException异常进行序列化,并根绝消息的SOAP规范(SOAP 1.1或SOAP 1.2)和WS-Addressing...具体来讲,在ServiceHost被初始化过程中,WCF会为服务的每个终结点创建相应的终结点分发器(EndpointDispatcher)。...在DispatchRuntime的初始化过程中,WCF会根据服务的描述创建一系列的DispatchOperation对象。...在默认的情况下,WCF采用懒惰加载(Lazy Loading)的方式创建FaultFormatter,也就是说WCF在真正使用到FaultFormatter的时候,才动态地创建该对象。

    1.1K100

    WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理

    消息,不但承载着正常服务调用的请求和回复,在出现异常时,消息依然是错误信息的载体。...下的异常:FaultException 在《WCF技术剖析(卷1)》中,我曾经提到过,在整个WCF体系下,数据存在的形态大体可以分为两种:XML和托管对象(Managed Object)。...而最终服务调用体现在消息的交换上,消息时基于XML的(除了少部分非XML的消息,比如JSON)。从数据转化的角度上讲,WCF起到了一个将数据从这两种形态数据进行转化和适配的作用。...在WCF异常处理体系中,对于异常或者错误,在XML的世界里最终通过Fault消息体现;而在托管对象的世界中,即使相应的Exception对象。...在服务执行过程中,我们手工抛出FaultException异常,WCF服务端框架会对该异常对象进行序列化病最终生成Fault消息。

    1.4K100

    .NET周报【10月第1期 2022-10-11】

    该平台建立在几十个分布式服务上,每秒处理数千个请求,时间不到 100ms。通过 WCF 托管在一个(仅仅是 "解除 "的)Windows 虚拟机中的.NET 框架 4.6 和 SOAP 服务。...在 Windows 虚拟机中托管了一个 WCF 的 SOAP 服务和一个.NET 框架 4.6。 文章介绍了转移到新的.NET 平台的原因。 原因主要有以下五点: 跨平台,如使用容器。...该服务是由 WCF 用 SOAP 服务构建的,由于它是对用户开放的,所以不可能迁移到类似 gRPC 的东西上,所以最后创建了 CoreWCF,它是 WCF 的一个子集,并进行了迁移。...谈到.NET 框架与.NET 的关系时,他说:"我们的目标是使我们的产品和服务更有竞争力。 从 WCF 到 CoreWCF 的迁移对.NET 有很大的影响,可以减少 40-50%的内存使用。...Blazor WebAssembly 托管在 GitHub Pages 上时,如何在访问不存在的页面时显示一个自定义错误页面的文章。

    5.5K20

    WCF版的PetShop之三:实现分布式的Membership和上下文传递

    中,通过Initialize方法获取配置的终结点名称并创建服务代理。...比如在PetShop中,服务端进行审核(Audit)的时候,须要获取当前登录的用户名。而登录用户名仅仅对于Web服务器可得,所以在每次服务调用的过程中,需要从客户端向服务端传递。...服务调用中的传递 下面我们来介绍一下如何实现上下文信息在WCF服务调用过程中的“隐式”传递。...在PetShop中,我们通过WCF的扩展实现此项功能。...上下文传递的实现原理很简单:在客户端,将序列化后的当前上下文信息置于出栈(Outgoing)消息的SOAP报头中,并为报头指定一个名称和命名空间;在服务端,在服务操作执行之前,通过报头名称和命名空间将上下文

    79860

    WinForm企业应用框架设计【五】系统登录以及身份验证+源码

    索引 WinForm企业应用框架设计【一】界限划分与动态创建WCF服务(no svc!no serviceActivations!)...特殊的是,登录之后的每次服务端交互, 服务端都要确认当前的客户端的正确性 为了做到这一点, 我们就要在每次与WCF交互的时候, 把客户端的身份传递给服务器端,并在服务端缓存起来。..."ns"); 这一句得到了我们在客户端传上来的UserId 在登录逻辑的服务类里,我们重写了CheckLogin方法 public class LoginService :ServiceBase...summary> /// 从WCF获取所有菜单 /// private void PrepareMenus() {...就这些东西~ ---------------------------------------- 遗留问题 我试图在ClientFactory中获取服务端反馈的错误 ((IClientChannel)proxy

    80220
    领券