现在的位置: 首页 > 综合 > 正文

利用WCF共享ASP.NET session实现WCF服务端验证

2013年04月21日 ⁄ 综合 ⁄ 共 4418字 ⁄ 字号 评论关闭

WCF能够共享ASP.NET的session,不同的WCF客户端代理类在采用Per Call模式下访问WCF能够访问同一个ASP.NET Session.但是WCF的Session和ASP.NET的Session是不同的。

  • WCF的Session代表着服务实例,它是被客户端代理类访问时初始化的。WCF依靠消息通道,安全回话和消息模式等来联系session的。
  • 而ASP.NET的session是类似服务端的一种存储数据的模式。它是通过客户端cookie和uri来维护session的

1. 利用ASP.NET的session实现认证,在aspx里记录用户认证信息:

2. 如果WCF服务端能够共享Asp.NET的session,必须在WCF配置文件中进行如下设置:

3.在服务端新建一个用户类:

4. 在WCF服务端可以利用共享的session来判断权限:

5.在客户端获取sessionId,我们可以通过Cookie获取客户端的sessionId

httpSessionCookieHelper是从cookie中获取sessionId的(CookieName 是ASP.NET_SessionId)

这样我们可以在第一次调用的回复中获取sessionId

注:第5点可以参照:http://blogs.msdn.com/b/wenlong/archive/2010/02/21/using-asp-net-sessions-from-wcf.aspx

【上篇】
【下篇】

抱歉!评论已关闭.