У меня была такая же ситуация. Вы заявили, что «не можете обойтись без [...] разрешения анонимного доступа к самому сайту», поэтому я не уверен, что мое решение будет работать для вас, но вот оно:
- Включить анонимный доступ к SharePoint (шаги 1 - 6 из http://www.topsharepoint.com/enable-anonymous-access-in-sharepoint-2010)
- В диспетчере IIS включите анонимную аутентификацию для подпапки раскладок, содержащей ваш файл Ashx. (Похоже, SharePoint все еще требует аутентификации для страниц приложения, поскольку они выходят из LayoutsPageBase).
В качестве альтернативы на своем сайте разработчика я включил анонимный доступ SharePoint, включил анонимный доступ из диспетчера IIS, а затем создал 2 правила web.config
<system.web>
<authorization>
<deny users="?" />
</authorization>
...
</system.web>
<location path="_layouts/Folder/Anonymous.ashx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
Однако я думаю, что эта версия слишком сложна. Я предпочитаю первый вариант.