У меня есть веб-приложение, и мне нужно предоставить своим пользователям возможность переключить метод входа из FormsAuth в WindowsAuth. Мне удалось изменить файл web.config с помощью кода:Программно включить или отключить анонимную аутентификацию в IIS
Configuration config = WebConfigurationManager.OpenWebConfiguration(Url.Content("~"));
AuthenticationSection auth = ((AuthenticationSection)(config.SectionGroups["system.web"].Sections["authentication"]));
auth.Mode = AuthenticationMode.Windows; // Or Forms if I want to.
config.Save();
Но проблема в том, когда я использую FormsAuth, мне нужен вариант Anonymouse аутентификации должен быть включен, и когда я использую WinAuth, мне это нужно, чтобы выключитесь. И я просто не могу найти способ изменить эту опцию с помощью кода.
Все в Интернете говорит, чтобы сделать это:
<security>
<authentication>
<anonymousAuthentication enabled="false/true" />
</authentication>
</security>
Но когда я ввожу это в web.config моего WebAPP в это говорит, что конфигурация является неправильным. Чем я прочитал, это может работать в другом файле конфигурации, например appHost.config или что-то в этом роде, но я предпочитаю вносить изменения только в свое приложение, а не в IIS. Надеюсь, вы поймете, почему.
Итак, как я могу это сделать?
Нет, нет, нет, я помещаю XML ** в нужную секцию ** (тот, который был отмечен), и все же я получаю это глупое сообщение HTTP Error 500.19, говорящее о сломанном файле конфигурации. – AgentFire
Это не работает, потому что целевая конфигурация конфигурации «заблокирована» от настройки на уровне приложения, требуя внесения изменений вне приложения (например, изменения конфигурации на уровне машинного уровня/уровня IIS). –