当前位置: 首页 > news >正文

wcf实现IP访问限制

wcf开发应用程序的时候常常会遇到一个问题,就是如何只让指定的客户端访问服务,其他客户端禁止访问服务。因为很多时候我们这样做可以防止一系列的黑客攻击、及非法调用等。

今天开心银光将介绍一种在wcf中取得访问端电脑的IP地址而进行过滤的方法,达到一定效果。这种方法对结合asp.net等web应用有很好的效果。

因为asp.net的机制是一个特定的服务器访问wcf,而像silverlight等ria或普通的win程式就比较难达到效果,因为这样的客户端我们无法确定他的ip,目前大多数中国用户使用的都是adsl动态ip。

所以此方案建议构建于asp.net结合的解决方案中。

1.只需在wcf简单的几句代码即可取得访问端的IP地址:

 1:  [OperationContract]
 2:  public string GetCustomerIP()
 3:  {
 4:      string CustomerIP = "";
 5:  
 6:      if( HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null)
 7:          CustomerIP = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
 8:      else if (HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"] != null)                
 9:          CustomerIP = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();
10:      return CustomerIP;
11:  }
12:  

以上代码即可取得调用端的ip地址。只要再作修改就可以成为限制IP访问wcf服务。须然IIS7也提供了IP访问限制功能,不过在部署方面让操作更简单。这也是一种很多的方案。希望本文对大家有所帮助。

转载于:https://www.cnblogs.com/jacle169/archive/2012/12/10/2810783.html

相关文章:

  • jrtplib编译指南
  • TCP 10054
  • Windows Phone 7 Belling‘s课堂(七) 独立存储空间(3)
  • office web apps server安装部署
  • makefile
  • (转)程序员疫苗:代码注入
  • 为Linux-3.10.1内核添加系统调用
  • enterprise library 5 unity使用方法
  • 设计的MOS管三极管简单开关电路驱动能力不够2
  • 大数据||HDFS||NameNode启动过程详解
  • [短彩信]C#短彩信模块开发设计(2)——配置
  • Java里面CompletableFuture详解
  • 10个最受欢迎的Java类
  • 国内 CDN 产品发展历史和现状整理
  • [译] 用 Java 创造你的第一个区块链-第一部分
  • ES6指北【2】—— 箭头函数
  • 「译」Node.js Streams 基础
  • C++类中的特殊成员函数
  • CSS相对定位
  • exif信息对照
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • JavaScript函数式编程(一)
  • JSDuck 与 AngularJS 融合技巧
  • Python3爬取英雄联盟英雄皮肤大图
  • vue数据传递--我有特殊的实现技巧
  • 闭包,sync使用细节
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 双管齐下,VMware的容器新战略
  • 用jQuery怎么做到前后端分离
  • ​TypeScript都不会用,也敢说会前端?
  • ​第20课 在Android Native开发中加入新的C++类
  • #includecmath
  • (+4)2.2UML建模图
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (全注解开发)学习Spring-MVC的第三天
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (万字长文)Spring的核心知识尽揽其中
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转)程序员技术练级攻略
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .net mvc 获取url中controller和action
  • .NET Project Open Day(2011.11.13)
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .Net的DataSet直接与SQL2005交互
  • .NET设计模式(11):组合模式(Composite Pattern)