Я пытаюсь зашифровать элемент «system.web.membership» в Web.Config нашего .Net-приложения, чтобы защитить имя пользователя и пароль в Active Directory. Я использую команду aspnet_regiis для шифрования и безуспешно пробовал несколько разных строк для значения параметра «pe». Я успешно зашифровал элемент "connectstrings" в моем файле web.config.
Cmd
C:\Windows\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis -pe "connectionStrings" -site MySite -app /MyApp Encrypting configuration section... Succeeded! C:\Windows\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis -pe "membership" -site MySite -app /MyApp Encrypting configuration section... The configuration section 'membership' was not found. Failed! C:\Windows\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis -pe "system.web.membership" -site MySite -app /MyApp Encrypting configuration section... The configuration section 'system.web.membership' was not found. Failed!
Web.Config
<configuration>
...
<system.web>
...
<authentication mode = "Forms">
<forms name = ".ADAuthCookie"
timeout = "30"/>
</authentication>
<authorization>
<deny users = "?"/>
<allow users = "*"/>
</authorization>
<membership defaultProvider = "MyADMembershipProvider">
<providers>
<add name = "MyADMembershipProvider"
type = "System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName = "ADConnectionString"
connectionUsername = "MyUserName"
connectionPassword = "MyPassowrd"/>
</providers>
</membership>
...
</system.web>
...
</configuration>
Так что же дает? Что мне не хватает?





Раздел конфигурации обозначается «system.web/membership», а не «membership» или «system.web.membership».
Я знаю, что ваша проблема уже решена, но другим людям, получающим это сообщение об ошибке, кажется, что можно зашифровать только определенные разделы файла web.config. Я пытался зашифровать настройки SMTP в своей веб-конфигурации:
<?xml version = "1.0"?>
<configuration>
<system.net>
<mailSettings>
<smtp>
<network host = "myhost" port = "25" userName = "myusername" password = "mypassword" />
</smtp>
</mailSettings>
</system.net>
</configuration>
Это сработало:
aspnet_regiis.exe -pef "system.net/mailSettings/smtp" "path_to_site" -prov "DataProtectionConfigurationProvider"
но этого не произошло:
aspnet_regiis.exe -pef "system.net/mailSettings" "path_to_site" -prov "DataProtectionConfigurationProvider"
aspnet_regiis.exe -pef "system.net" "path_to_site" -prov "DataProtectionConfigurationProvider"