Я использую Visual Studio 2008. В моем проекте я использую аутентификацию форм, структура моего проекта выглядит следующим образом
root
|
login.aspx
home.aspx
web.config
admin (folder)
|
admin.aspx
web.config
здесь в корне web.config выглядит следующим образом
<authentication mode="Forms">
<forms name="Authen" protection="All" timeout="60" loginUrl="Login.aspx" enableCrossAppRedirects="true" cookieless="AutoDetect"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
и во внутреннем web.config
и мои пользователи
Имя пользователя Роль
admin1 Admin
admin2 Admin
user1 Пользователь
user2 пользователь
Как вы можете видеть, во втором файле web.config я дал доступ пользователям с ролью "Администратор" и пользователем "user1".
для предоставления доступа к папке "admin", я написал следующее:
Configuration config = WebConfigurationManager.OpenWebConfiguration("~/HR");
SystemWebSectionGroup systemWeb = (SystemWebSectionGroup)config.GetSectionGroup("system.web");
AuthorizationSection section = (AuthorizationSection)systemWeb.Sections["authorization"];
AuthorizationRule newRule = new AuthorizationRule(AuthorizationRuleAction.Allow);
newRule.Users.Add("user1");
section.Rules.Add(newRule);
и сохранил файл web.config как
config.Save();
это работает нормально, когда я запускаю его с сервера разработки Visual Studio, когда я размещаю его в IIS, я получаю следующую ошибку
Ошибка конфигурации
Описание: во время обработки файла конфигурации, необходимого для обслуживания этого запроса, произошла ошибка. Пожалуйста, просмотрите подробности конкретной ошибки ниже и измените файл конфигурации соответствующим образом.
Сообщение об ошибке анализатора: при загрузке файла конфигурации произошла ошибка: доступ к пути 'F: \ dotnet \ samples \ myproj \ UI \ hr \ f-q_g-yn.tmp' запрещен.
Ошибка источника:
[Нет соответствующих строк источника]
Исходный файл: F: \ dotnet \ samples \ myproj \ UI \ hr \ web.config Строка: 0
здесь проблема в том, что не удается сохранить web.config
у меня есть одно решение, то есть я добавил
<identity impersonate="true" userName="myusername" password="mypassword"/>
, чтобы получить root права на web.config, и он работает нормально. но мой босс говорит, что это не правильный путь. как правильно решить эту проблему ??
пожалуйста помогите