Скрыть asmx веб-методы условно в C # - PullRequest
1 голос
/ 04 апреля 2011

Как я могу условно скрыть веб-методы? Я не хочу показывать веб-метод, если настройка флага в web.config имеет значение false. Если это правда, то я выставлю веб-метод.

Значение: метод должен быть виден клиенту, только если флаг имеет значение true, в противном случае он не должен быть доступен для клиента.

Возможно ли это в C #?

Ответы [ 2 ]

2 голосов
/ 04 апреля 2011

Вы можете проверить флаг в своем методе и выдать исключение, если оно не установлено.

1 голос
/ 04 апреля 2011

Вы действительно не можете этого сделать.

Ваши клиенты "видят" веб-методы, потому что они перечислены в WSDL.Генерация WSDL довольно статична - она ​​основана на атрибутах [WebMethod] в ваших методах.В действительности нет возможности удалять элементы из сгенерированного WSDL.

Если вы сможете переключиться на WCF, вам будет намного проще.А пока вам просто нужно использовать авторизацию - не позволяйте некоторым клиентам вызывать некоторые методы.

...