[学习日记]对SOAP头内添加信息的验证,可实现对请求WEB服务进行身份验证。
首先,当然是发送的SOAP头里添加信息的方法了,前面有过记录,这里就不再写了
可参见
[学习日记]对SOAP请求的头添加内容的方法
那么这次向头内添加的信息为:
dim proxy as GetHttpHeadersProxy=new GetHttpHeadersProxy
proxy.AddHttpHeader("name","aowind")
proxy.AddHttpHeader("pwd","123456")
![](/Images/OutliningIndicators/None.gif)
接下来就是WEB服务方面的验证方法了。
<%@ WebService Language="vb" Class="believing.Believing" %>
![](/Images/OutliningIndicators/InBlock.gif)
Imports System
Imports System.Web.Services
Imports System.IO
Imports System.Collections
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
Public Structure httpheader
Public name As String
Public value As String
End Structure
![](/Images/OutliningIndicators/InBlock.gif)
<System.Web.Services.WebService(Namespace:="http://hx66.com", Description:="身份验证服务")> _
Public Class Believing
Inherits System.Web.Services.WebService
![](/Images/OutliningIndicators/InBlock.gif)
<WebMethod(Description:="<font color=green>身份验证方法</font>")> _
Public Function lianzheng() As String
dim name,pwd as string
name=Context.Request.Headers("name")
pwd=Context.Request.Headers("pwd")
If (用户表中存在name) And (用户表中存在pwd) Then
Try
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/dot.gif)
![](/Images/dot.gif)
.
Catch ex As Exception
Return ex.ToString
End Try
Return "OK!"
Else
Return "用户名或都密码有误,请求不于处理"
End If
End Function
可以看到
name=Context.Request.Headers("name")
pwd=Context.Request.Headers("pwd")
这两句就是从SOAP头中取出数据
也可以用索引方式来取得
Context.Request.Headers(0).value
可参见
[学习日记]对SOAP请求的头添加内容的方法
那么这次向头内添加的信息为:
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
接下来就是WEB服务方面的验证方法了。
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/dot.gif)
![](/Images/dot.gif)
![](/Images/dot.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
可以看到
name=Context.Request.Headers("name")
pwd=Context.Request.Headers("pwd")
这两句就是从SOAP头中取出数据
也可以用索引方式来取得
Context.Request.Headers(0).value