CustomXmlDecryptor.cs 994 B

1234567891011121314151617181920212223242526272829303132
  1. // Copyright (c) .NET Foundation. All rights reserved.
  2. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
  3. using System;
  4. using System.Linq;
  5. using System.Xml.Linq;
  6. using Microsoft.AspNetCore.DataProtection.XmlEncryption;
  7. using Microsoft.Extensions.DependencyInjection;
  8. using Microsoft.Extensions.Logging;
  9. namespace CustomEncryptorSample
  10. {
  11. public class CustomXmlDecryptor : IXmlDecryptor
  12. {
  13. private readonly ILogger _logger;
  14. public CustomXmlDecryptor(IServiceProvider services)
  15. {
  16. _logger = services.GetRequiredService<ILoggerFactory>().CreateLogger<CustomXmlDecryptor>();
  17. }
  18. public XElement Decrypt(XElement encryptedElement)
  19. {
  20. if (encryptedElement == null)
  21. {
  22. throw new ArgumentNullException(nameof(encryptedElement));
  23. }
  24. return new XElement(encryptedElement.Elements().Single());
  25. }
  26. }
  27. }