2013-03-20 56 views
2

我使用自定义的UserNamePasswordValidator在.NET 4上有一个WCF服务,使用SSL和邮件安全进行了保护。在UserNamePasswordValidator中存储自定义信息

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

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

从我的谷歌搜索看来,我必须实现IAuthorizationPolicy或IIdentity,但这两个都不能访问密码。

我认为很多服务都会使用用户名和密码并使用它来查找相关帐户。我是在过度复杂吗,还是我错过了一些明显的东西?

回答

1

我结束了检查OperationContext.Current.ServiceSecurityContext.PrimaryIdentity,看看是否用户进行身份验证,然后就取回我从数据库中需要基于身份的名称的信息。这似乎工作得很好。