Поместите 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, или взгляните на How to: Register HTTP Handlers.
Я также заметил, что кто-то задал аналогичный вопрос here, вам может быть полезно.
Надеюсь, что вы быстро найдете решение, удачи!