【发布时间】:2015-09-17 15:45:56
【问题描述】:
我需要在现有 WCF 服务上创建自定义身份验证/授权,这应该是按方法进行的:一些方法应该强制用户登录,而其他方法应该允许匿名使用。该服务被实现为单例。
为此,我想做以下事情:
- 启用具有默认行为的会话,因此每个现有服务方法都将在会话不存在时启动它;
- 添加 login(userName, password) 方法,该方法将成功登录工件保存在
Dictionary<>周围的包装器中,并使用当前会话 ID 作为密钥; - 添加
logout()方法,该方法关闭会话并从字典中删除人工制品; - 添加会话监视器,它将使用
Dictionary<SessionId, WeakReference<OperationContext.Current>>删除未调用logout()方法的会话。每次添加新会话时都会执行监视器。
不过有两个问题:
- 是否有更简单的方法来实现按方法身份验证?
- 这种方法有什么问题吗?
【问题讨论】:
标签: c# wcf session authentication authorization