How to use the ASP.NET utility to encrypt credentials and session state connection strings (329290)
The information in this article applies to:
- Microsoft ASP.NET (included with the .NET Framework 1.1)
- Microsoft ASP.NET (included with the .NET Framework) 1.0
This article was previously published under Q329290 Important This article contains information about how to modify the
registry. Make sure to back up the registry before you modify it. Make sure
that you know how to restore the registry if a problem occurs. For more
information about how to back up, restore, and modify the registry, click the
following article number to view the article in the Microsoft Knowledge Base: 256986 Description of the Microsoft Windows registry SUMMARY This step-by-step article describes how to use the
Aspnet_setreg.exe utility to encrypt credentials and session state connection
strings. Microsoft ASP.NET version 1.0 requires that you store plain text
credentials in configuration files if you want to do any of the following:
- Change the ASP.NET worker process identity.
- Specify an impersonation identity.
- Specify a connection string for session state.
When you apply the hotfix that is described in Microsoft
Knowledge Base article 329250 (see "References"), you can use encrypted data
that is stored in the registry instead of plain text in the following
configuration sections:
- <identity userName= password= />
- <processModel userName= password= />
- <sessionState stateConnectionString= sqlConnectionString= />
IntroductionUse the Aspnet_setreg.exe utility to encrypt and to store these
attribute values in the registry under a secure key. Use the CryptProtectData function with the CRYPTPROTECT_LOCAL_MACHINE flag to encrypt the
credentials. Because anyone with access to the computer can call CryptUnprotectData, the encrypted data is stored under a secure registry key with a
strong discretionary access control list (DACL). When ASP.NET parses the
configuration file, it reads the secure registry key and then uses CryptUnprotectData to decrypt the data. Inetinfo.exe, which runs under the
System identity, reads the <processModel /> section. To read the registry
keys that store a user name and password for the ASP.NET worker process, the
System account must have Read permission to these keys. The ASP.NET
worker process (Aspnet_wp.exe) reads the <identity /> and
<sessionState /> sections. To read these registry keys, the worker
process account must have Read permission to these keys. If content is hosted
on a Universal Naming Convention (UNC) share, the account that is used to
access the UNC share must have permission to read these keys. By
default, the registry keys that Aspnet_setreg.exe creates grant full control to
the System, Administrator, and Creator Owner accounts. You can use Regedt32.exe
to modify the DACL on the registry key. Make sure that arbitrary users cannot
read the registry keys. Restart IIS For your changes to take effect, you must restart Microsoft
Internet Information Services (IIS). By restarting IIS, you start a new ASP.NET
worker process. To do this, click Start, click
Run, type iisreset in the
Open box, and then click OK. Note If the server that you have reconfigured is a domain controller,
you may have to restart the server. REFERENCES
For more information about a hotfix that lets you use the
features that are described in this article, click the following article number to view the article in the Microsoft Knowledge Base:
329250
FIX: Stronger credentials for processModel, identity, and
sessionState
Note
The fix that is described in article 329250 is only available for the .NET Framework 1.0. For more information about the Microsoft Windows
registry, click the following article number to view the article in the
Microsoft Knowledge Base: 256986
Description of the Microsoft Windows registry
For more information about ASP.NET, click the following
article numbers to view the articles in the Microsoft Knowledge Base: 315158
FIX: ASP.NET does not work with the default ASPNET account on a domain controller
Note
The fix that is described in article 315158 is only available for the .NET Framework 1.0. 317012 Process and request identity in ASP.NET
Modification Type: | Minor | Last Reviewed: | 10/11/2006 |
---|
Keywords: | kbdownload kbConfig kbfix kbHOWTOmaster kbSecurity kbState KB329290 kbAudDeveloper |
---|
|