有没有在UserNamePasswordValidator之前被调用的WCF扩展点?

5

每个WCF请求在调用UserNamePasswordValidator.Validate(username, password)之前,我需要运行某些东西。

我已经尝试使用IDispatchMessageInspector,但检查器是在UserNamePasswordValidator.Validate之后调用的。

是否有在调用UserNamePasswordValidator之前调用的WCF扩展点?


这个链接有帮助吗? - Christian.K
@Christian.K 抱歉,我不知道这怎么能帮助我。 - Rookian
根据您想要做什么,您可以注入自己的验证或在标准验证之前添加一些逻辑。 - Peter
@peer 这是真的,但我想不使用UserNamePasswordValidator来初始化我的配置,因为两者是不同的关注点。 - Rookian
这听起来像是一个潜在的XY问题,你试图解决什么问题,你认为在验证之前有一个扩展点会解决它? - Scott Chamberlain
@ScottChamberlain 在我的UserNamePasswordValidator中,我需要从数据库获取一些配置值。为了做到这一点,我有一个依赖项,可以提供给我这些配置。我希望配置每个 Web 请求加载一次。因此,我正在寻找一种方法,在执行我的Configuration.Initialize方法时只加载一次配置。在执行UserNamePasswordValidator时,没有可用的每个请求上下文。 - Rookian
1个回答

0

我曾经遇到过类似的情况。最终我做的是实现了一个自定义的用户名/密码验证器类。我运行了必要的代码,然后运行了老式的用户名/密码验证器。

public override void Validate(string userName, string password)
{
    // your custom code here...

    // then...
    base.Validate(userName, password);
}

根据您的描述,每个请求检索配置值完全可以用这种方式完成。

查看此MSDN页面以了解如何实现自定义用户名/密码验证器。


我假设你想要使用base.Validate(...),如果不想使用,就不要用它。 - Lantos Dumonché

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接