2

我想创建一个自定义安全模块,一旦发生身份验证,它将在所有服务上运行。

所有服务都将配置为支持 Windows 身份验证。如果身份验证成功,自定义安全模块将负责:根据数据库验证用户并创建自定义主体并将其设置为 WCF 操作上下文的属性。

我是否需要使用自定义 ServiceBehaviour、EndpointBehaviour 或有其他替代方案来实现这一点?

我应该将自定义主体设置到哪个属性?

有人可以将我推向正确的方向吗?

谢谢

更新 1
我在上面使用了“验证”这个词,我的错误我应该使用“验证”,因为模块只会验证用户是否存在。为了验证用户是否存在,模块不需要接收用户的密码。我想继续使用“Windows”作为 clientCredentialType。

4

1 回答 1

1

您可以为此使用自定义验证。它将允许您通过自定义逻辑添加对某些数据的额外安全检查。您必须创建验证类,从 UserNamePasswordValidator 继承并覆盖 Validate() 方法,您可以在其中传递一些数据并使用您的逻辑来处理它。http://blogs.msdn.com/b/pedram/archive/2007/10/05/wcf-authentication-custom-username-and-password-validator.aspx上有一个很好的例子

昨天我和Bvb202就这个话题进行了讨论。如果您感兴趣,请阅读账户管理

于 2013-03-20T12:31:52.567 回答