Advertisement
Guest User

Untitled

a guest
Sep 12th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.97 KB | None | 0 0
  1. using System;
  2. using System.IO;
  3. using Microsoft.AspNetCore.DataProtection;
  4. using Microsoft.Extensions.DependencyInjection;
  5.  
  6. namespace Infrastructure.Web.Extensions.Installers
  7. {
  8.     /// <summary>
  9.     ///     Методы расширения для <see cref="IServiceCollection" /> для настройки DataProtection сервисов.
  10.     /// </summary>
  11.     public static class DataProtectionInstaller
  12.     {
  13.         /// <summary>
  14.         ///     Настраивает DataProtection сервисы приложения.
  15.         /// </summary>
  16.         /// <param name="services">Экземпляр настраиваемой коллекции сервисов.</param>
  17.         /// <param name="applicationDiscriminator">
  18.         ///     Уникальный идентификатор приложения, для отделения его от других приложений,
  19.         ///     использующих те же ключи.
  20.         /// </param>
  21.         /// <param name="dataProtectionDirectory">
  22.         ///     Директория, которая будет использована для хранения ключей, используемых
  23.         ///     механизмом DataProtection.
  24.         /// </param>
  25.         /// <returns></returns>
  26.         public static IServiceCollection InstallDataProtection(
  27.             this IServiceCollection services,
  28.             string applicationDiscriminator,
  29.             string dataProtectionDirectory)
  30.         {
  31.             var directory = new DirectoryInfo(dataProtectionDirectory);
  32.             if (!directory.Exists)
  33.                 throw new Exception("Директория, используемая для механизма DataProtection не существует!");
  34.             services
  35.                 .AddDataProtection(options => options.ApplicationDiscriminator = applicationDiscriminator)
  36.                 .PersistKeysToFileSystem(directory);
  37.             return services;
  38.         }
  39.     }
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement