Пользовательский атрибут .NET WebService - PullRequest
0 голосов
/ 23 апреля 2010

Я хотел бы добавить пользовательский атрибут в веб-службу asmx, чтобы определить, действителен ли запрос на основе IP-адреса клиента. Это похоже на идею AuthorizeAttribute в ASP.NET MVC.

Есть ли где-нибудь (например, модуль HTTP), где я могу разместить код для просмотра атрибута на веб-сервисе и решить, разрешить ли запрос или нет?

В моем файле web.config обработчиком asmx является ScriptHandlerFactory из библиотеки System.Web.Extensions.

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

Спасибо

1 Ответ

0 голосов
/ 23 апреля 2010

Вы можете добавить пользовательский атрибут, например

class ValidateIP
{
   public ValidateIP(string ip)
   {
      if(!valid)
       throw CustomerException();
   }
}

, и все, что вам нужно, это добавить атрибут в ваш класс
[ValidateIP (ip)]

   Full example

</p> <pre> namespace Test { [TriLLi("11")] class Program { static void Main(string[] args) { } } class TriLLi : Attribute { public TriLLi(string ip) { if(!ip.Equals("10")) throw new Exception("You are not allowed to acces this method"); } } }</pre> <p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...