- Optimistically treat failures as transient and continue to use any existing cached key ring for a short period of time
- Updates to the key ring shouldn't block other threads; they can use the outdated version while waiting for the update
- Add helpful extension methods to Interfaces project
- Auto heuristic detection now writes default protection settings to the ILogger
- Cleanup dead methods / add useful methods in DataProtectionConfiguration
- Update System.Web compatibility project to allow mapping MachineKey.Protect directly to IDataProtector.Protect
- aspnet/Mvc#2082
- problems specific to local `node` and related installations
- quote authenticode verification target
- quote local `node` library paths
- quote local `npm.cmd` path (with ye olde `/S` double-quoting hack)
- quote `--prefix` values in `npm install` commands
- quote `rimraf` directories to delete
This key is used if there is no preferred default key and the developer has disabled automatic key generation. This will keep the service from falling over if the keys are not rolled and they all expire.
- aspnet/Mvc#2116
- run Bower non-interatively from our scripts
- does not affect grunt-brower-task; programmatic Bower use never prompts
- see Bower discussion at bower/bower#1162
- FYI `$env:CI = 'TeamCity'` would work similarly but TeamCity does not set that
- Move IDataProtectionProvider, IDataProtector, and extension methods to their own package
- Simplify the APIs for registering and configuring the system
- Default implementation now auto-detects capabilities of OS
- Use EncryptedXml for X.509 certificate-based encryption
- Add ability to escrow secret material upon key creation
- Use centralized system policy for default algorithm selection
- Simplify System.Web compatibility layer
- Add unit tests, logging, and doc comments throughout solution