Есть ли способ предоставить только определенный веб-метод в .Веб-сервис Net для конкретного пользователя / группы?

#c# #.net #web-services #security

#c# #.net #веб-службы #Безопасность

Вопрос:

У меня есть веб-служба, которая имеет несколько веб-методов. Есть ли способ предоставить только один из этих веб-методов определенной группе или лицу?

На данный момент я использую проверку подлинности Windows и группы пользователей для авторизации. Это просто обеспечивает полный доступ к веб-службе.

 <authentication mode="Windows"/>
<authorization>
    <allow users="*" roles="domaingroupName"/>
    <deny users="*"/>
</authorization>
  

Есть ли способ добавить другую группу в атрибут roles, который разрешал бы доступ только к «myMethod», а не к другим веб-методам, существующим в веб-службе?

Любая помощь приветствуется!

Ответ №1:

Посмотрите на параметры авторизации на основе ролей в разделе WCF в статье Аутентификация, авторизация и удостоверения в WCF. Похоже, что раздел декларативной авторизации — это то, что вы ищете.

Ответ №2:

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

Вот пример проверки подлинности по странице / каталогу

 <configuration>
   <location path="Logon.aspx">
      <system.web>
         <authorization>
            <allow users="*" roles="domaingroupName"/>              
            <deny users="*"/>  
         </authorization>
      </system.web>
   </location>
</configuration>
  

И вот ссылка на исходную статью, которая может вам помочь.
http://msdn.microsoft.com/en-us/library/b6x6shw7.aspx