#c# #security #web-config
#c# #Безопасность #web-config
Вопрос:
Я использую одну из ночных сборок resharper, и недавно я просто наткнулся на нее, указывая на это сообщение «Элемент Location не используется: путь пуст», учитывая следующий код web.config
<location path="">
<system.web>
<authorization>
<allow roles="Administrator" />
<deny users="*" />
</authorization>
</system.web>
</location>
Я нахожу это утверждение от resharper сомнительным, поскольку я использовал подобные элементы location без проблем.
Является ли пустой path просто значением по умолчанию для него, "."
как указано в MSDN, по умолчанию для свойства path?
Что делает <location path="">
и <location path=".">
функционально эквивалентным?
Комментарии:
1. path=»» не должен вызывать исключение. Я не знаком с resharper, но вы пробовали что-то в отдельном приложении и смотрели, работает ли это.
Ответ №1:
Значение по умолчанию для path
является "."
только тогда, когда вы его не переопределяете; это, <location>
функционально эквивалентно <location path=".">
— но <location path="">
отличается. Однако пустой путь не должен использоваться; если он когда-либо будет использован, это, скорее всего, ошибка в том, как .net обрабатывает пустые пути.
Комментарии:
1. Я действительно хочу некоторую проверку этого ответа, особенно вашего последнего предложения, в котором заключается вся цель этого вопроса.
2. Я наградил вас наградой за то, что вы единственный человек, пытающийся ответить на вопрос, вместо того, чтобы позволить ему истечь. Однако я все еще не могу принять этот ответ в настоящее время без какой-либо вспомогательной информации.
3. Спасибо. Я бы предоставил вам вспомогательную информацию, если бы она у меня была, но у меня ее нет — это всего лишь мое понимание того, как работает web.config.
Ответ №2:
Эта ошибка, безусловно, является еще одним примером чрезмерного усердия Resharper. Корпорация Майкрософт рекомендует использовать пустой путь в критических изменениях для ASP.NET 4.
Однако согласно MSDN,
При использовании location с отсутствующим атрибутом path параметры конфигурации применяются к текущему каталогу и ко всем дочерним каталогам.
таким образом, вы можете просто опустить атрибут path, который предотвращает ошибку Resharper.
Комментарии:
1. Это всегда хороший день, когда я могу принять ответ на вопрос, который я задал почти год назад.