通过Ticker来维护webservice会话

通过Ticker来维护会话。

Server端代码
定义Ticker和WebService类。
WebService必须包含Ticker成员。
在其Login方法中根据传进来的$Ticker进行验证,验证成功后通过设置$Ticker返回会话TICKER信息。
其他方法中使用的SoapHeader("Ticket")属性(单向传入),因此在这些方法中也可以根据Soap头的$Ticket信息进行授权验证。

Public Class TicketHeaderClass TicketHeader
        Inherits SoapHeader        
        Public UserName As String        
        Public Password As String
        Public UserID As Integer
        Public SessionGUID As System.Guid
    End Class
Public Class RenderServiceClass RenderService
    Inherits System.Web.Services.WebService
    
    
'  Holds the authentication SOAP header.
    Public Ticket As TicketHeader
 
< WebMethod(), SoapHeader( " Ticket " , Direction: = SoapHeaderDirection.InOut) >  _
    Public Function Login()Function Login() As Boolean
        
// 根据Ticker中的密码和用户名验证,然后设置Ticker信息回Ticket,SoapHeaderDirection.InOut信息会回传
    End Function
< WebMethod(), SoapHeader( " Ticket " ) >  _
    Public Function GetTasks()Function GetTasks(ByVal completedOnly As Boolean) As DataSet 
'
        AuthenticateSession(Ticket)
       
// 验证会话,通过后往下执行
    End Function
End Class


 

代理类代码
自动生成TicketHeader和代理类定义。
代理类中包含成员TicketHeader成员。

客户端代码
流程如下
1. 定义代理类实例 -->
2. 设置$TicketHeader信息,用户名和密码  -->
3. 调用Login方法,Login操作完成后$TicketHeader会自动被Server端设置会话信息 -->
4. 通过代理类实例任意调用其他方法了

 

会话的管理,可以通过缓存来定义其超时时间,和绑定其主机IP。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值