WCF客户端如何实例化一次并全局使用?

JokerChenjb 2016-08-26 04:33:51
WCF服务端是基于自定义声明授权的,WCF是基于WinForm做的,在WCf客户端中进行用户名/密码的认证。
我的想法是,在WCF客户端内,将服务只实例化一次得到一个全局对象,然后在登陆界面上,只验证一次用户名/密码,验证通过后,就可以根据权限,通过该全局对象调用权限允许的服务。而不是每次都得new,每次都得验证用户名/密码。
不知道这样是否可以实现?如果可以,请问如何实现?
...全文
233 3 打赏 收藏 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
单例模式??
software_artisan 2016-08-27
  • 打赏
  • 举报
回复
这个似乎不可能。。。因为即使是net.tcp,也会有个连接超时时间。超时了,连接就断了,你要传输数据,就要重新new一个client。当然了,你可以把超时时间设置得很长。。。这样也许可以让你不用总是new一个client,但总归是会超时的。 so,不要总想歪门邪道,搞这些容易坑到自己。
  • 打赏
  • 举报
回复
贴出你的所谓“进行用户名/密码的认证”代码。 web是无连接的,因此底层就不存在什么长连接概念。如果你在web服务上纠结于长连接,那么为什么不使用tcp甚至websocket呢? 访问无连接的服务,那么第一次“验证”时,客户端会得到一个授权码(叫做passportId 或者 accessToken 之类的都可以),然后每一次访问都要同时提供这个编码。服务器端可以使用、也可以不使用它,反正是在参数设计中就有这个编码作为参数之一。

111,128

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧