Мы находимся в процессе разработки веб-службы WCF REST, которая просто получает кучу произвольного текста от любого анонимного пользователя, а затем выполняет некоторую обработку на сервере.
Например, , вот один метод из нашей веб-службы:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class MyRESTService : IMyRESTService
{
[WebInvoke(Method = "PUT", UriTemplate = "/MyRESTMethod?paramA={paramA}¶mB={paramB}")]
public Stream MyRESTMethod(string paramA, string paramB, Stream rawData)
{
//do some stuff...
}
}
Если мы просто воспользуемся настройками IIS по умолчанию, мы получим (401) Unauthorized
. Однако после долгих проб и ошибок мы выяснили, что можем заставить его работать, предоставив WRITE доступ к «Всем» в фактическом файле .svc
для нашей службы.
Мой вопрос: почему в миру понадобится ли IIS для записи в файл .svc
, чтобы это работало? Есть ли лучший способ, или я застрял с этим хакерским (и, возможно, небезопасным) обходным решением?
WTF Microsoft?
Возможно связано: