Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема с web.config

422
06 мая 2006 года
Dimarik
181 / / 12.02.2005
ASP.Net 2.0

В виртуальном каталоге имеется папка, в ней есть файл web.config, в котором имются следующие папки:

<authentication mode="Forms">
<forms loginUrl="http://bla.bla.ru/Auth/login.aspx"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>

При попытке зайти на любой файл в этой папке выводится следующая ошибка:

It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS.

Чё-то ничего не пойму.
273
07 мая 2006 года
3A3-968M
1.2K / / 22.12.2005
Глюк заключается в расположении конфига Web.config. Если allowDefinition="MachineToApplication", то секция <configuration> должна находится в файле Machine.config или Web.config, который должен находится в одной папке с Web.config. Файлы конфигурации должны находится в корне виртуального каталога, но не в поддиректориях.
Вот что по этому поводу в MSDN написано:
allowDefintion="Everywhere" - The ConfigurationSection can be defined anywhere.
allowDefintion="Machineonly" - The ConfigurationSection can be defined only in the Machine.config file
allowDefintion="MachineToApplication" - The ConfigurationSection can be defined in either the Machine.config file, the machine-level Web.config file found in the same directory as Machine.config, or the top-level application Web.config file found in the virtual-directory root, but not in subdirectories of a virtual root.
allowDefinition="MachineToWebRoot" - The ConfigurationSection can be defined in either the Machine.config file or the machine-level Web.config file found in the same directory as Machine.config, but not in application Web.config files.
422
07 мая 2006 года
Dimarik
181 / / 12.02.2005
Цитата:
Originally posted by 3A3-968M
Глюк заключается в расположении конфига Web.config. Если allowDefinition="MachineToApplication", то секция <configuration> должна находится в файле Machine.config или Web.config, который должен находится в одной папке с Web.config. Файлы конфигурации должны находится в корне виртуального каталога, но не в поддиректориях.
Вот что по этому поводу в MSDN написано:
allowDefintion="Everywhere" - The ConfigurationSection can be defined anywhere.
allowDefintion="Machineonly" - The ConfigurationSection can be defined only in the Machine.config file
allowDefintion="MachineToApplication" - The ConfigurationSection can be defined in either the Machine.config file, the machine-level Web.config file found in the same directory as Machine.config, or the top-level application Web.config file found in the virtual-directory root, but not in subdirectories of a virtual root.
allowDefinition="MachineToWebRoot" - The ConfigurationSection can be defined in either the Machine.config file or the machine-level Web.config file found in the same directory as Machine.config, but not in application Web.config files.



Т.е. мне надо поставить allowDefintion="Everywhere", чтобы размещать web.config в любой папке узла?

273
07 мая 2006 года
3A3-968M
1.2K / / 22.12.2005
Попробуй
422
07 мая 2006 года
Dimarik
181 / / 12.02.2005
Цитата:
Originally posted by 3A3-968M
Попробуй


Чё-то ищу ищу, но могу найти такие строки в machine.config. Куда добавить это allowDefinition="Everywhere"???

273
08 мая 2006 года
3A3-968M
1.2K / / 22.12.2005
<configuration allowDefinition="Everywhere">
....
</configuration>
422
08 мая 2006 года
Dimarik
181 / / 12.02.2005
Цитата:
Originally posted by Dimarik
Чё-то ищу ищу, но могу найти такие строки в machine.config. Куда добавить это allowDefinition="Everywhere"???



Спасибо, всё получилось! Сделал в свойствах этой папки "Создать приложение". Сейчас другая проблема. Имеется web.config в корневой папке, в котором имеются следующие строки:



<authentication mode="Forms">

<forms loginUrl=http://bla.ru/Auth/login.aspx ></forms>

</authentication>

<authorization>


</authorization>



Также в одном из подкатолов имеется свой web.config, в нём написано:



<authentication mode="Forms">

<forms loginUrl=http://bla.ruAuth/login.aspx ></forms>

</authentication>

<authorization>


<deny users="?"/>

</authorization>



Необходимо сделать так, чтобы на сайт могли заходить все пользователи, а именно, на эту папку - только авторизованные. При таких выше приведённых записях в конфигах происходит следующее.

На сайт действительно могут заходить все пользователи, но вот только ВСЕГДА при обращении к этой выше упомянутой папке требует авторизацию. Почему так?

422
08 мая 2006 года
Dimarik
181 / / 12.02.2005
Цитата:
Originally posted by 3A3-968M
<configuration allowDefinition="Everywhere">
....
</configuration>



А вот о таком он говорит, что не знает. Может в ASP.NET 2.0 нет такого

422
08 мая 2006 года
Dimarik
181 / / 12.02.2005
Изменил строчку в web.config, которыйнаходится в подкаталоге,

<forms loginUrl=http://bla.ruAuth/login.aspx ></forms>

на

<forms loginUrl=login.aspx ></forms>

И скопировал туда соотвествующий файл. Авторизация в этой папке происходит отлично. Но не происходит авторизация на всём сайте. В принципе решение есть. Т.е. после авторизации в подкатологе делать редирект на страницу авторизации ко всему сайту, автоматически заполнить форму. Но как-то коряво, может чё-нибудь другое предложите?
273
08 мая 2006 года
3A3-968M
1.2K / / 22.12.2005
login.aspx для авторизации всего сайта должен валяться на уровень выше или в этом же каталоге, где и другие *.aspx файлы. Кароч, закинь login.aspx в корень виртуального каталога
422
08 мая 2006 года
Dimarik
181 / / 12.02.2005
Цитата:
Originally posted by 3A3-968M
login.aspx для авторизации всего сайта должен валяться на уровень выше или в этом же каталоге, где и другие *.aspx файлы. Кароч, закинь login.aspx в корень виртуального каталога



Уже закидывал. Авторизация проходит для всего сайта, но не для этой папки. Когда обращаюсь к ней, происходит редирект на login.aspx который находится в корне, затем раз он не авторизовывает эту папку, то он опять редиректит на login.aspx.

273
08 мая 2006 года
3A3-968M
1.2K / / 22.12.2005
Хм
273
08 мая 2006 года
3A3-968M
1.2K / / 22.12.2005
Блин, а если программно поуправлять авторизацией, через объект Session и кукисы?
422
08 мая 2006 года
Dimarik
181 / / 12.02.2005
Цитата:
Originally posted by 3A3-968M
Блин, а если программно поуправлять авторизацией, через объект Session и кукисы?



Ну вот пока что и сделал. Т.е. на всех страницах этой папки такая конструкция:

if (Context.User.Identity.Name.Length==0)
Response.Redirect("bla.aspx")

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог