рдЖрдЬ рдореИрдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЕрд╡рд╕рд░ рдЬреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рджрд╛рддрд╛ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рддреЛ рдПрдХ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рджрд╛рддрд╛ рдХреНрдпрд╛ рд╣реИ? рдпрд╣ рдПрдХ рд╡рд░реНрдЧ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ web.config рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЗ рдХреБрдЫ рд╡рд░реНрдЧреЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдЧреЛрдкрдиреАрдп рдЬрд╛рдирдХрд╛рд░реА рдХреА рд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкрд░ рддреИрдпрд╛рд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рддреИрдирд╛рдд рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо, рдкрд╛рд╕рд╡рд░реНрдб, рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рди рддрд╛рд░, рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди, рдЖрджрд┐ред
рдпрд╣ configProtectedData рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реИ:
<configuration> <configProtectedData defaultProvider="SampleProvider"> <providers> <add name="SampleProvider" type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" keyContainerName="SampleKeys" useMachineContainer="true" /> </providers> </configProtectedData> </configuration>
AppSettings рдФрд░ рдХрдиреЗрдХреНрд╢рди рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рд╡рд░реНрдЧреЛрдВ:
<appSettings configProtectionProvider="SampleProvider"> <EncryptedData> ... </EncryptedData> </appSettings> <connectionStrings configProtectionProvider="SampleProvider"> <EncryptedData> ... </EncryptedData> </connectionStrings>
рдЖрдЗрдП рдЗрд╕ рд╢реНрд░реЗрдгреА рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЧреИрд░-рдорд╛рдирдХ рд░реВрдк рд╕реЗ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ, рдЕрд░реНрдерд╛рддреН, рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рд╢рд╛рдЦрд╛рдПрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП - рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░реЛрдлрд╛рдЗрд▓, рдПрдХ рд╡реЗрдм рд╕рд╛рдЗрдЯ рдХреЗ рднреАрддрд░ рдЖрд╡реЗрджрди рдХреА рдЖрднрд╛рд╕реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдирд╛рдо рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдХрд┐рд╕ рд▓рд┐рдП рд╣реИ? рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рд╣реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдг рд╢рд╛рд╕рдХреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реЗрдХрд┐рди рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рдХрдиреЗрдХреНрд╢рди рд▓рд╛рдЗрдиреЗрдВ, рдФрд░ рдРрдкрд╕реЗрдЯрд┐рдВрдЧ рдФрд░ рдХрдиреЗрдХреНрд╢рдирд╕реНрдЯреНрд░реАрдо рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рдЕрдиреНрдп рд╕реЗрдЯрд┐рдВрдЧреНрд╕ред
рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрд╣ рдЖрдкрдХреЗ рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдЖрдкрдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрдИ рд╕рдорд╛рди рд╕рд╛рдЗрдЯреЗрдВ, рдХреЗрд╡рд▓ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде, рд▓реЗрдХрд┐рди рдПрдХ рд╕рдорд╛рди рдХреЛрдб рд╣реЛрдиреЗ рдкрд░ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рд╖рдп рдирд╛рдо рдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рдеред
рд╣рдо рдРрд╕реЗ рдкреНрд░рджрд╛рддрд╛ рдХреЛ рд▓рд┐рдЦреЗрдВрдЧреЗ рдФрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗред
IIS рдкреНрд░рдмрдВрдзрдХ рдореЗрдВ, "рдбреЗрдореЛрд╕рд╛рдЗрдЯ" рд╕рд╛рдЗрдЯ рдмрдирд╛рдПрдВ, рдЬреЛ рдЕрднреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЦрд╛рд▓реА рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рд▓рд┐рдВрдХ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рджреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди (рд╡рд░реНрдЪреБрдЕрд▓ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА) рдмрдирд╛рдПрдВрдЧреЗ рдЬреЛ рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдЯ рдлреЛрд▓реНрдбрд░ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░реЗрдЧрд╛, рдЬрд╣рд╛рдВ рд╣рдорд╛рд░реЗ web.config рдирд┐рд╣рд┐рдд рд╣реИрдВред

Web.config рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреБрдЫ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдРрдкрд╕реЗрдЯрд┐рдВрдЧ рдФрд░ рдХрдиреЗрдХреНрд╢рдирд╕реНрдЯреНрд░реАрдо рдЕрдиреБрднрд╛рдЧ рдмрджрд▓реЗрдВред
<?xml version="1.0" encoding="UTF-8"?> <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> ... <appSettings configProtectionProvider="DemoConfigurationProvider"> <EncryptedData> <profile1> ... </profile1> <profile2> ... </profile2> <defaultSettings> ... </defaultSettings> </EncryptedData> </appSettings> ... <connectionStrings configProtectionProvider="DemoConfigurationProvider"> <EncryptedData> <profile1> ... </profile1> <profile2> ... </profile2> <defaultSettings> ... </defaultSettings> </EncryptedData> </connectionStrings> ... <configProtectedData> <providers> <add name="DemoConfigurationProvider" type="Renascence.DemoConfigurationProvider,DemoConfigurationProvider" /> </providers> </configProtectedData> </configuration>
рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдиреБрднрд╛рдЧ рдкреНрд░реЛрдлрд╛рдЗрд▓ 1 рдФрд░ рдкреНрд░реЛрдлрд╛рдЗрд▓ 2 рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИ, рдФрд░ рд╣рдордиреЗ рдкреНрд░рджрд╛рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдЧ рдбреЗрдореЛрдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рдирдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рдХреЛ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рд╣реИред
рдЗрди рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреЗ рдмрд╛рдж, рдЖрдк рдЗрди рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВред рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ:
рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ / рдбреЗрдореЛрд╕рд╛рдЗрдЯ / рдкреНрд░реЛрдлрд╛рдЗрд▓ 1 рдпрд╛
рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ / рдбреЗрдореЛрд╕рд╛рдЗрдЯ / рдкреНрд░реЛрдлрд╛рдЗрд▓ 2 ред рддрджрдиреБрд╕рд╛рд░, рдЕрдиреБрднрд╛рдЧ рдкреНрд░реЛрдлрд╛рдЗрд▓ 1 рдФрд░ рдкреНрд░реЛрдлрд╛рдЗрд▓ 2 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд▓рд╛рдЧреВ рдХреА рдЬрд╛рдПрдВрдЧреАред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╡рд┐рдЪрд╛рд░ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдФрд░ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рдЕрдм рд╣рдореЗрдВ рдмрд╕ DemoConfigurationProvider рд╡рд░реНрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реИред
рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдмрд╕ рдПрдХ рд╕рдорд╛рдкреНрдд рдбреЗрдореЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рджреВрдВрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рд╕реНрд░реЛрдд рдкрд╛рда рд╢рд╛рдорд┐рд▓ рд╣реИред
рдбреЗрдореЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдирд┐рдореНрди рдЬреИрд╕рд╛ рдХреБрдЫ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:

рдбрд╛рдЙрдирд▓реЛрдб:
github рдкрд░ рдбреЗрдореЛ