Измените программно Web.config для приложения WebForm при запуске - PullRequest
0 голосов
/ 21 февраля 2019

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

Проблема, с которой я сталкиваюсь, заключается в том, что если я установлю в Web.configниже все работает правильно:

<authentication mode="Forms">
      <forms loginUrl="Login.aspx" defaultUrl="Default.aspx" timeout="60" name="UserName" enableCrossAppRedirects="true" />
</authentication>

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

Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
var configAuthSection = ((SystemWebSectionGroup)config.GetSectionGroup("system.web")).Authentication;
configAuthSection.Mode = AuthenticationMode.Forms;
configAuthSection.Forms.LoginUrl = "Login.aspx";
configAuthSection.Forms.DefaultUrl = "Default.aspx";
configAuthSection.Forms.Timeout = new TimeSpan(60);
configAuthSection.Forms.Name = "UserName";
configAuthSection.Forms.EnableCrossAppRedirects = true;
config.Save();

Ибо «это не работает» означает, что когда я пытаюсь войти в систему, это дает мне 401, что означает неавторизованное, но это должно дать мне точно такое же поведение, как когда я устанавливаю его непосредственно в Интернете.конфигурации.

...