PLAY
Free NowThe tool in ASP.NET Core provides a safe way to store this information during local development by keeping it outside your project directory. 1. Enable Secret Storage
Storing sensitive data like API keys, database connection strings, or passwords directly in your code or appsettings.json is a major security risk. If you accidentally commit these files to source control (like GitHub ), anyone with access to the repository can see them. How to manage user secrets in ASP.NET Core
Run the following command in your project directory: dotnet user-secrets init ``` Use code with caution. Copied to clipboard 2. Add Your Secrets The tool in ASP
dotnet user-secrets set "ServiceApiKey" "12345" ``` To group secrets (e.g., for a "Movies" section), use a colon: ```bash dotnet user-secrets set "Movies:ServiceApiKey" "12345" ``` Use code with caution. Copied to clipboard 3. Access Secrets in Code If you accidentally commit these files to source
Right-click the project in Solution Explorer and select Manage User Secrets .
In ASP.NET Core, WebApplication.CreateBuilder automatically includes the user secrets configuration source when the environment is set to . You can access these secrets using the standard Configuration API or the Options Pattern . Using IConfiguration:
public class MyController : ControllerBase { private readonly IConfiguration _config; public MyController(IConfiguration config) => _config = config; public IActionResult Get() { var apiKey = _config["ServiceApiKey"]; // Retrieves the secret return Ok(); } } ``` ### Key Best Practices * **Development Only:** User secrets are **not encrypted** and are only intended for local development. * **Production Security:** Never use Secret Manager for production. Instead, use more secure providers like [Azure Key Vault](https://learn.microsoft.com/en-us/aspnet/core/security/key-vault-configuration) or [environment variables](https://microsoft.com). * **Source Control:** Ensure your `secrets.json` file path is never added to `.gitignore`, though it should already be safe since it lives outside the project folder. Use code with caution. Copied to clipboard How to manage user secrets in ASP.NET Core - InfoWorld