Я пытаюсь выяснить, как реализовать механизм обнаружения повторной атаки с 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
}
}
Как получить доступ к явно реализованному методу, используя отражение ?