WCF中加密数据信息
View Code
1 //在使用wcf中,正常传输数据中,是没有加密的,这样来数据会很不安全的,如下:
2
3 //// wcf coding
4
5 public class Service1 : IService1
6 {
7 public string GetData(int value)
8 {
9 return string.Format("You entered: {0}", value);
10 }
11
12 }
13
14 ///web.config 是默认配置。
15
16 <?xml version="1.0" encoding="utf-8"?>
17 <configuration>
18
19 <system.web>
20 <compilation debug="true" targetFramework="4.0" />
21 </system.web>
22 <system.serviceModel>
23 <behaviors>
24 <serviceBehaviors>
25 <behavior>
26 <!-- 为避免泄漏元数据信息,请在部署前将以下值设置为 false 并删除上面的元数据终结点 -->
27 <serviceMetadata httpGetEnabled="true"/>
28 <!-- 要接收故障异常详细信息以进行调试,请将以下值设置为 true。在部署前设置为 false 以避免泄漏异常信息 -->
29 <serviceDebug includeExceptionDetailInFaults="false"/>
30 </behavior>
31 </serviceBehaviors>
32 </behaviors>
33 <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
34 </system.serviceModel>
35 <system.webServer>
36 <modules runAllManagedModulesForAllRequests="true"/>
37 </system.webServer>
38 </configuration>
39
40
41
42 ///把以上部署到IIS上,运行成功!
////在创建一个winfrom程序,引用这个wcf服务地址 http://localhost/Service1.svc
View Code
1 ///调用wcf中的GetData(int value)方法
2
3 using (GetWcfInfo.ServiceReference1.Service1Client client = new ServiceReference1.Service1Client())
4 {
5 MessageBox.Show(client.GetData(1987));
6 }
//如上,调用成功!这时我们用http抓取工具可又看到我们调用时后返回的原数据。
////如果此项目中的数据信息很重要,不想叫它人用此类的方法抓取到我们的数据时,要怎么办呀?wcf中我们可又使用自定义数据类型加密,也可又使用默认微软提供的加密方式:如:X509,下面就用X509加密后的wcf使用传输数据信息。只是简单的配置了一下.config文件,跟创建了两个证书(X509)。
///上图是采用X509加密方式来进行数据传输的,可又看出,信息已经完全被加密了。