WCF安全参数的设置方法总共有三种,主要包括:安全方式; 消息保护;以及身份验证等方式。
WCF是.NET Framework 3.5的重要组成部分,主要作用域通信方面。我们可以通过使用它来轻松的完成一些特定功能需求。在这里我们将会针对WCF安全参数的相关设置方法,为大家详解有关内容。
WCF安全参数设置方法1. 安全方式
通过设置 Binding 的属性 Security 来实现。
NetTcpBinding binding = new NetTcpBinding();
binding.Security.Mode = SecurityMode.Transport;
binding.Security.Transport.ProtectionLevel =
System.Net.Security.ProtectionLevel.EncryptAndSign;
WCF安全参数设置方法2. 消息保护
通过 ServiceContractAttribute 和 OperationContractAttribute 特性的 ProtectionLevel 参数我们可以设置不同的消息保护级别。
[ServiceContract(ProtectionLevelProtectionLevel =
ProtectionLevel.EncryptAndSign)]
interface IMyContract
{ ... }
WCF安全参数设置方法3. 身份验证
不同的部署环境,会采取不同的选择。在 Intranet 环境下,我们可能选择 Windows 集成验证方式,而在 Internet 环境下通常的方案是采取 X.509 数字证书,当然最最通用最最常见依然是用户名/密码。
以 Windows 集成验证为例,客户端可以通过 ClientBase.ClientCredentials 属性向服务器端发送与其相匹配的身份验证信息。缺省情况下,客户端使用当前 Windows 登录账户作为身份验证信息,我们也可以显式设置不同的身份信息。
代理方式:
NetworkCredential credentials = new NetworkCredential( );
credentials.Domain = "MyDomain";
credentials.UserName = "MyUsername";
credentials.Password = "MyPassword";
using (MyContractClient client = new MyContractClient())
{
client.ClientCredentials.Windows.ClientCredential = credentials;
client.MyMethod( );
}
工厂方式:
ChannelFactory<IMyContract> factory = new ChannelFactory<IMyContract>("");
factory.Credentials.Windows.ClientCredential = new NetworkCredential(...);
IMyContract client = factory.CreateChannel( );
using(client as IDisposable)
{ client.MyMethod( ); }
在服务中,我们可以用 ServiceSecurityContext.Current (或者 OperationContext.Current.ServiceSecurityContext) 来获取相关身份信息。
Console.WriteLine(ServiceSecurityContext.Current.WindowsIdentity.AuthenticationType);
Console.WriteLine(ServiceSecurityContext.Current.WindowsIdentity.Name);
分享到:
相关推荐
以下是如何在WCF客户端中动态设置WCF服务器主机的方法: 1. **动态创建EndpointAddress**: `EndpointAddress` 类是WCF中表示服务终结点地址的类。在上述代码中,`GetHotsUrl` 方法接收一个`EndpointAddress`参数...
**WCF调试工具详解** Windows Communication Foundation (WCF) 是微软.NET Framework中一个强大的服务导向架构,用于构建可互操作的分布式系统。在开发和维护WCF服务时,调试是必不可少的一环,以确保服务正常运行...
通过配置服务的绑定,我们可以设置端口、安全性、最大消息大小等参数。 **服务主机和服务宿主**:WCF服务需要运行在一个宿主环境中,这可以是IIS、自定义进程或Console应用程序。在聊天程序中,服务宿主可能是一个...
**WCF技术详解** Windows Communication Foundation (WCF) 是微软推出的一种面向服务的架构,用于构建高度可互操作、安全且可靠的企业级应用程序。WCF是.NET Framework的一部分,旨在统一各种通信模式,如Web服务、...
**在“Wrox.Professional.WCF.Programming.Apr.2007.pdf”这本书中,你将深入学习WCF的各个方面,包括但不限于服务设计、服务托管、服务配置、数据传输、错误处理、安全性实现、服务性能优化以及高级主题,如面向...
- `NetTcpBinding`: 在配置文件中设置绑定,指定使用TCP传输,并可调整其他参数如安全性、最大消息大小等。 2. **Client**: 这是客户端项目,用于消费服务。客户端通过生成代理类与服务进行通信,代理类由`svcutil...
### WCF 指南教程知识点详解 #### 一、WCF概述 - **定义**:WCF(Windows Communication Foundation)是由微软推出的一种用于构建面向服务(Service Oriented)应用程序的统一框架。它通过托管代码提供了创建和服务...
### WCF基础知识详解 #### 一、WCF概述 Windows Communication Foundation (WCF) 是 Microsoft 提供的一个统一的编程模型,用于构建安全可靠的面向服务的应用程序。WCF 的设计目标是提供一个统一的框架,使得...
- **协定(Contract)**:定义了客户端和服务端之间的通信规则,包括服务提供的操作方法及其参数。 **服务交互** - **服务宿主**:用于承载WCF服务,可以选择自包含的控制台或Windows服务应用,也可以集成在IIS中。 ...
**WCF 文件上传详解** Windows Communication Foundation (WCF) 是微软.NET Framework中用于构建服务导向应用程序的技术。在WCF中实现文件上传功能是一项常见的任务,它允许客户端将数据(如文件)发送到服务端进行...
Windows Communication Foundation(WCF)是微软.NET框架中的一个核心组件,用于构建高度可配置的、安全的、可靠的、跨平台的分布式应用程序。WCF提供了一种统一的方式来创建和消费服务,无论这些服务是本地还是远程...
这个示例中,客户端通过`BasicHttpBinding`与服务端建立HTTP连接,调用`SayHello`方法并传入参数。服务端接收到请求后,返回响应数据。 WCF还支持多种安全模式,例如Transport、Message和...
**WCF服务编程源代码详解** Windows Communication Foundation(WCF)是微软提供的一个全面的、统一的编程模型,用于构建面向服务的应用程序。它是.NET Framework的一部分,旨在简化创建、部署和管理分布式应用程序...
**WCF调用案例代码详解** Windows Communication Foundation (WCF) 是微软.NET Framework中的一个核心组件,用于构建可互操作的、面向服务的应用程序。它提供了丰富的功能集,包括消息交换模式、安全性、事务和可靠...
#### 三、创建第一个WCF程序步骤详解 1. **创建解决方案**: - 使用Visual Studio 2008创建一个空解决方案。 - 添加一个控制台应用程序项目,并命名为“Host”(服务器端)。 2. **添加Web服务模板**: - 在Host...
#### 十四、WCF安全编程--基本概念 WCF提供了丰富的安全机制,包括身份验证、授权、加密等。 **安全编程**: - **身份验证**:使用用户名/密码、证书等进行身份验证。 - **授权**:通过角色进行访问控制。 - **...
**WCF Data Services 使用步骤详解** Windows Communication Foundation (WCF) Data Services,也称为 ADO.NET Data Services,是一种用于创建RESTful(Representational State Transfer)服务的技术,它允许客户端...
**WCF跨域AJAX详解** Windows Communication Foundation (WCF) 是微软.NET框架下的一种服务导向架构,用于构建可互操作的分布式系统。它提供了一种统一的方式,用于创建、配置和部署各种类型的服务,包括Web服务。...