Поместите XML-файлы в определенную папку, добавьте web.config в эту папку, содержащую:
<configuration>
<system.web>
<authorization>
<deny users="?"/>
<allow roles="admin"/>
</authorization>
</system.web>
</configuration>
Изменить '?' (что означает, что анонимные пользователи - то есть не вошли в систему) в '*', чтобы запретить всех пользователей (сервер будет иметь доступ [например, через Server.MapPath и т. д.]).
Соответственно вы можете играть с ролями или убрать эту строку.
Также учтите, что в файле web.config вы можете запретить и разрешить определенные расширения следующим образом:
<system.web>
<httpHandlers>
<remove verb="*" path="*.xml" />
<!--or-->
<add verb="*" path="*.xml" type="System.Web.HttpForbiddenHandler" />
</httpHandlers>
</system.web>
Пожалуйста, не полагайтесь на этот последний фрагмент, пока не убедитесь, что ваши потребности.
Вы можете узнать больше о Http Handlers или взглянуть на Как: зарегистрировать HTTP-обработчики .
Я также заметил, что кто-то задал похожий вопрос здесь , вы можете найти его полезным.
Надеюсь, вы быстро найдете свое решение, удачи!