Добавление пользовательских атрибутов в методы веб-службы ASMX - PullRequest
2 голосов
/ 24 января 2012

У меня есть несколько веб-методов в веб-сервисе asmx, которые в настоящее время выглядят так:

[WebMethod(false, System.EnterpriseServices.TransactionOption.NotSupported)]
[ScriptMethod(ResponseFormat = ResponseFormat.Xml)]
public XElement GetSomeData(int dataId)
{
    // Do something.
}

Я хочу иметь возможность сделать что-то вроде этого:

[WebMethod(false, System.EnterpriseServices.TransactionOption.NotSupported)]
[ScriptMethod(ResponseFormat = ResponseFormat.Xml)]
[EnableSomeCustomSecurityCheck(true)]
public XElement GetSomeData(int dataId)
{
    // Do something.
}

Где "EnableSomeCustomSecurityCheck "сообщает, что должен быть дополнительный параметр токена, который необходимо проверить.Я в основном хочу избежать копирования этого кода в каждый метод, который нуждается в этом:

[WebMethod(false, System.EnterpriseServices.TransactionOption.NotSupported)]
[ScriptMethod(ResponseFormat = ResponseFormat.Xml)]
public XElement GetSomeData(int dataId, string securityToken)
{
    SomeClass.CheckSecurityToken(securityToken);

    // Do something.
}

Я немного растерялся относительно того, с чего начать.Может кто-нибудь указать мне правильное направление для того, как я могу добавить эту функциональность без потери каких-либо функций, которые уже есть у asmx?

1 Ответ

1 голос
/ 24 января 2012

Вы можете поместить атрибут в метод, а затем Расширение мыла проверить атрибут и вести себя соответственно.

...