WCF通过所有服务调用传递额外的安全数据

时间:2009-09-16 15:57:53

标签: wcf security wcf-security wcf-client

客户端我需要向我发出的每个服务调用传递一条信息(例如,这个例子就是一个字符串)。服务使用此字符串(currentRole)以及用户/通过凭据来检索用户与其当前角色关联的声明集。

到目前为止我遇到的解决方案是:

1)修改邮件标题,使其从客户端发出,并验证邮件标题是否存在服务端。

2)使用自定义凭据,根据我的理解,需要自定义安全令牌以存储字符串。

我是否还缺少其他方法,例如只将信息添加到现有令牌/凭证中?是否有上述解决方案的优缺点?

感谢。

1 个答案:

答案 0 :(得分:1)

您还可以编写一个客户端行为,将此标题添加到消息中(因此您不必考虑在代码中自行执行此操作)。

您可以实现IClientMessageInspector并在BeforeSendRequest方法覆盖中添加邮件标头。当您将此行为添加到每个客户端端点时,它会自动将该邮件头添加到每个传出邮件。

有关初学者信息,请参阅此CodeProject article,有关更深入的专业知识,请参阅此blog post

马克