【问题标题】:WCF custom auth using session id使用会话 ID 的 WCF 自定义身份验证
【发布时间】:2015-09-17 15:45:56
【问题描述】:

我需要在现有 WCF 服务上创建自定义身份验证/授权,这应该是按方法进行的:一些方法应该强制用户登录,而其他方法应该允许匿名使用。该服务被实现为单例。

为此,我想做以下事情:

  • 启用具有默认行为的会话,因此每个现有服务方法都将在会话不存在时启动它;
  • 添加 login(userName, password) 方法,该方法将成功登录工件保存在 Dictionary<> 周围的包装器中,并使用当前会话 ID 作为密钥;
  • 添加logout() 方法,该方法关闭会话并从字典中删除人工制品;
  • 添加会话监视器,它将使用Dictionary<SessionId, WeakReference<OperationContext.Current>> 删除未调用logout() 方法的会话。每次添加新会话时都会执行监视器。

不过有两个问题:

  1. 是否有更简单的方法来实现按方法身份验证?
  2. 这种方法有什么问题吗?

【问题讨论】:

    标签: c# wcf session authentication authorization


    【解决方案1】:

    前几天我遇到了类似的问题,我找到了解决办法。

    您可以检查是否需要; WCF service and adding custom Identity claims

    【讨论】:

      【解决方案2】:

      对于自定义授权,您应该使用Custom Authorization Manager。您应该使用 ASP.net 管理会话,如果您启用 AspNet Compatibility,您可以访问这些会话。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多