2008-09-25 3 views
4

Я пытаюсь зашифровать элемент «system.web.membership» в Web.Config нашего .Net-приложения, чтобы защитить имя пользователя и пароль в Active Directory. Я использую команду aspnet_regiis для шифрования и пробовал несколько разных строк для значения параметра «pe» без успеха. Я успешно зашифровал элемент «connectstrings» на моем web.config.Проблема шифрования элемента членства в 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> 

Так что это дает? Что мне не хватает?

ответ

6

Раздел конфигурации идентифицируется «system.web/membership», а не «membership» или «system.web.membership».

4

Я знаю, что ваша проблема уже решена, но для других людей, получающих это сообщение об ошибке, кажется, что только определенные разделы 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"