`
wyf
  • 浏览: 435684 次
  • 性别: Icon_minigender_1
  • 来自: 唐山
社区版块
存档分类
最新评论

WCF安全参数相关设置方法详解

阅读更多

 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服务器主机.doc

    以下是如何在WCF客户端中动态设置WCF服务器主机的方法: 1. **动态创建EndpointAddress**: `EndpointAddress` 类是WCF中表示服务终结点地址的类。在上述代码中,`GetHotsUrl` 方法接收一个`EndpointAddress`参数...

    wcf调试工具

    **WCF调试工具详解** Windows Communication Foundation (WCF) 是微软.NET Framework中一个强大的服务导向架构,用于构建可互操作的分布式系统。在开发和维护WCF服务时,调试是必不可少的一环,以确保服务正常运行...

    WCF聊天程序示例

    通过配置服务的绑定,我们可以设置端口、安全性、最大消息大小等参数。 **服务主机和服务宿主**:WCF服务需要运行在一个宿主环境中,这可以是IIS、自定义进程或Console应用程序。在聊天程序中,服务宿主可能是一个...

    WCF培训资料以及说明

    **WCF技术详解** Windows Communication Foundation (WCF) 是微软推出的一种面向服务的架构,用于构建高度可互操作、安全且可靠的企业级应用程序。WCF是.NET Framework的一部分,旨在统一各种通信模式,如Web服务、...

    微软最新WCF的编程模式和开发详解

    **在“Wrox.Professional.WCF.Programming.Apr.2007.pdf”这本书中,你将深入学习WCF的各个方面,包括但不限于服务设计、服务托管、服务配置、数据传输、错误处理、安全性实现、服务性能优化以及高级主题,如面向...

    WCF TCP 源码下载实例

    - `NetTcpBinding`: 在配置文件中设置绑定,指定使用TCP传输,并可调整其他参数如安全性、最大消息大小等。 2. **Client**: 这是客户端项目,用于消费服务。客户端通过生成代理类与服务进行通信,代理类由`svcutil...

    WCF 指南教程(PDF)

    ### WCF 指南教程知识点详解 #### 一、WCF概述 - **定义**:WCF(Windows Communication Foundation)是由微软推出的一种用于构建面向服务(Service Oriented)应用程序的统一框架。它通过托管代码提供了创建和服务...

    WCF培训资料

    ### WCF基础知识详解 #### 一、WCF概述 Windows Communication Foundation (WCF) 是 Microsoft 提供的一个统一的编程模型,用于构建安全可靠的面向服务的应用程序。WCF 的设计目标是提供一个统一的框架,使得...

    wcf从原理到实践(试读)

    - **协定(Contract)**:定义了客户端和服务端之间的通信规则,包括服务提供的操作方法及其参数。 **服务交互** - **服务宿主**:用于承载WCF服务,可以选择自包含的控制台或Windows服务应用,也可以集成在IIS中。 ...

    WCF 文件上传

    **WCF 文件上传详解** Windows Communication Foundation (WCF) 是微软.NET Framework中用于构建服务导向应用程序的技术。在WCF中实现文件上传功能是一项常见的任务,它允许客户端将数据(如文件)发送到服务端进行...

    wcf基础知识详解及实例

    Windows Communication Foundation(WCF)是微软.NET框架中的一个核心组件,用于构建高度可配置的、安全的、可靠的、跨平台的分布式应用程序。WCF提供了一种统一的方式来创建和消费服务,无论这些服务是本地还是远程...

    wcf通信示例

    这个示例中,客户端通过`BasicHttpBinding`与服务端建立HTTP连接,调用`SayHello`方法并传入参数。服务端接收到请求后,返回响应数据。 WCF还支持多种安全模式,例如Transport、Message和...

    WCF服务编程源代码

    **WCF服务编程源代码详解** Windows Communication Foundation(WCF)是微软提供的一个全面的、统一的编程模型,用于构建面向服务的应用程序。它是.NET Framework的一部分,旨在简化创建、部署和管理分布式应用程序...

    WCF调用案例代码

    **WCF调用案例代码详解** Windows Communication Foundation (WCF) 是微软.NET Framework中的一个核心组件,用于构建可互操作的、面向服务的应用程序。它提供了丰富的功能集,包括消息交换模式、安全性、事务和可靠...

    WCF教程系列

    #### 三、创建第一个WCF程序步骤详解 1. **创建解决方案**: - 使用Visual Studio 2008创建一个空解决方案。 - 添加一个控制台应用程序项目,并命名为“Host”(服务器端)。 2. **添加Web服务模板**: - 在Host...

    WCF分布式开发步步为赢.pdf

    #### 十四、WCF安全编程--基本概念 WCF提供了丰富的安全机制,包括身份验证、授权、加密等。 **安全编程**: - **身份验证**:使用用户名/密码、证书等进行身份验证。 - **授权**:通过角色进行访问控制。 - **...

    WCF Data Services 使用步骤

    **WCF Data Services 使用步骤详解** Windows Communication Foundation (WCF) Data Services,也称为 ADO.NET Data Services,是一种用于创建RESTful(Representational State Transfer)服务的技术,它允许客户端...

    WCF跨域ajax

    **WCF跨域AJAX详解** Windows Communication Foundation (WCF) 是微软.NET框架下的一种服务导向架构,用于构建可互操作的分布式系统。它提供了一种统一的方式,用于创建、配置和部署各种类型的服务,包括Web服务。...

Global site tag (gtag.js) - Google Analytics