受限IP调用webservice方案 webservice远程测试显示 “测试窗体只能用于来自本地计算机的请求” webservice注释

根据IP调用webservice方案

 

1、创建ClientIPs.xml

<?xml version="1.0" encoding="utf-8" ?>
<IPS>
  <IP>127.0.0.</IP>
  <IP>10.2.16.</IP>
</IPS>

 

2、在web.config的添加appSettings标签中添加 <add key="IPsXml" value="ClientIPs.xml"/>

 

3、在当前项目中添加web服务,由于时间比较紧,就拿目前在开发的VB项目为例。C#简单的

   

     核心代码如下:

    #Region "判断ip地址"

    ''' <summary>
    ''' 判断是否是允许访问的客户端IP地址
    ''' </summary>
    ''' <param name="strIP">客户端IP地址</param>
    ''' <returns>bool</returns>
    ''' <remarks></remarks>
    Public Function IsAllowedIP(ByVal strIP As String) As Boolean
        Dim xmlDoc As XmlDocument = New XmlDocument()
        xmlDoc.Load(Server.MapPath(System.Configuration.ConfigurationManager.AppSettings("IPsXml")))
        Dim rootNode As XmlNode = xmlDoc.DocumentElement '获取根节点
        For Each node As XmlNode In rootNode.ChildNodes
            If node.InnerXml.Substring(node.InnerXml.Length - 1, 1) = "." Then
                ' 如果是一个网段地址
                If strIP.Contains(node.InnerXml) Then
                    Return True
                End If
            Else
                If strIP = node.InnerXml Then
                    Return True
                End If
            End If
        Next
        Return False
    End Function
#End Region

 

    ''' <summary>
    ''' 受限IP得到所有行政许可受理信息
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    <WebMethod(EnableSession:=True, Description:="受限IP得到所有行政许可受理信息")> _
    Public Function GetAcceptances() As DataTable
        If IsAllowedIP(Me.Context.Request.ServerVariables("REMOTE_ADDR").ToString()) Then
            Return GetAcceptance() '调用业务方法
        Else
            Return Nothing
        End If
    End Function

 

webservice注释:普通的XML 注释不行,要用特性参数,Description来设置

 

OK这样就好了,弄好部署到服务器上

 

遇到调用的问题: 

webservice远程测试显示 “测试窗体只能用于来自本地计算机的请求”
The test form is only available for requests from the local machine.

解决的方法:
在web.config中加入如下配置节内容
<webServices>
          <protocols>
             <add name="HttpSoap"/>
             <add name="HttpPost"/>
             <add name="HttpGet"/>
             <add name="Documentation"/>
          </protocols>
</webServices>

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值