| 12345678910111213141516171819202122232425262728293031 |
- // Copyright (c) .NET Foundation. All rights reserved.
- // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
- using System;
- using Microsoft.AspNetCore.DataProtection;
- using Microsoft.AspNetCore.DataProtection.KeyManagement;
- using Microsoft.AspNetCore.DataProtection.XmlEncryption;
- using Microsoft.Extensions.DependencyInjection;
- using Microsoft.Extensions.Options;
- namespace CustomEncryptorSample
- {
- public static class CustomBuilderExtensions
- {
- public static IDataProtectionBuilder UseXmlEncryptor(
- this IDataProtectionBuilder builder,
- Func<IServiceProvider, IXmlEncryptor> factory)
- {
- builder.Services.AddSingleton<IConfigureOptions<KeyManagementOptions>>(serviceProvider =>
- {
- var instance = factory(serviceProvider);
- return new ConfigureOptions<KeyManagementOptions>(options =>
- {
- options.XmlEncryptor = instance;
- });
- });
- return builder;
- }
- }
- }
|