【问题标题】:Storing custom info in UserNamePasswordValidator在 UserNamePasswordValidator 中存储自定义信息
【发布时间】:2013-03-20 10:44:03
【问题描述】:

我在 .NET 4 上有一个带有自定义 UserNamePasswordValidator 的 WCF 服务,通过 SSL 和消息安全保护。

UserNamePasswordValidator 接收用户名和密码并将其传递给存储过程,该存储过程返回该用户名和密码的有效帐户令牌。

我的问题是我不明白如何在实际的 Web 服务中访问该帐户令牌。我怀疑我必须能够将令牌添加到某处的标头中,但 UserNamePasswordValidator 中尚不存在 OperationContext 并且在 HttpContext 上设置它失败并显示“验证消息安全性时发生错误。”

从我的谷歌搜索来看,我似乎必须实现 IAuthorizationPolicy 或 IIdentity,但它们都无法访问密码。

我认为许多服务会采用用户名和密码并使用它来查找相关帐户。是我把它复杂化了,还是我只是遗漏了一些明显的东西?

【问题讨论】:

    标签: .net wcf security access-token


    【解决方案1】:

    如果您想在身份验证时捕获其他信息(即:您的令牌),则需要实现自定义 UserNameSecurityTokenAuthenticator,而不仅仅是自定义 UserNamePasswordValidator。示例见http://www.neovolve.com/2008/04/07/wcf-security-getting-the-password-of-the-user/

    【讨论】:

      【解决方案2】:

      我最终检查了 OperationContext.Current.ServiceSecurityContext.PrimaryIdentity 以查看用户是否经过身份验证,然后根据身份名称从数据库中检索我需要的信息。这似乎工作得很好。

      【讨论】:

        猜你喜欢
        • 2012-06-30
        • 2015-12-19
        • 1970-01-01
        • 1970-01-01
        • 2011-03-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-04
        相关资源
        最近更新 更多