Использование общего кэша в среде веб-фермы для обнаружения атак воспроизведения в WCF

Я пытаюсь выяснить, как реализовать механизм обнаружения повторной атаки с WCF в сценарии веб-фермы.

WCF предоставляет такой механизм обнаружения с использованием одноразового кэша. , Поправьте меня, если я ошибаюсь, но единственный способ предотвратить эту атаку в сценарии безопасности сообщений и веб-фермы - использовать одноразовый кеш, общий для всех серверов.

В WSE3.0 раньше было возможно обеспечить пользовательские реализации одноразового кэша

http://msdn.microsoft.com/en-us/library/ff647945.aspx

, но, похоже, нет быть любым способом сделать это в WCF (без параметров конфигурации, кроме того, я обнаружил с помощью Reflector, что класс NonceCache помечен как закрытый и внутренний). {public void M () {var m = this.GetType () .GetMethod ("M"); m.Invoke (это, новый объект [] {}); // обратите внимание на каламбур} ...

Обычно я обращаюсь к методу в отражении, например так:

class Foo
{
    public void M () {
        var m = this.GetType ().GetMethod ("M");
        m.Invoke(this, new object[] {}); // notice the pun
    }
}

Однако, это не получается, когда M является явной реализацией:

class Foo : SomeBase
{
    void SomeBase.M () {
        var m = this.GetType ().GetMethod ("M");
        m.Invoke(this, new object[] {}); // fails as m is null
    }
}

Как получить доступ к явно реализованному методу, используя отражение ?

6
задан mafu 6 September 2010 в 10:05
поделиться