ASP.NET Core의 임시 데이터 보호 공급자
애플리케이션에 일회용 IDataProtectionProvider
가 필요한 시나리오가 있습니다. 예를 들어 개발자가 일회성 콘솔 애플리케이션에서 실험 중이거나 애플리케이션 자체가 일시적(스크립팅 또는 단위 테스트 프로젝트임)일 수 있습니다. 이러한 시나리오를 지원하기 위해 Microsoft.AspNetCore.DataProtection 패키지에는 EphemeralDataProtectionProvider
형식이 포함됩니다. 이 형식은 키 리포지토리가 메모리에만 저장되고 백업 저장소에 기록되지 않는 IDataProtectionProvider
의 기본 구현을 제공합니다.
각 인스턴스는 EphemeralDataProtectionProvider
고유한 기본 키를 사용합니다. 따라서 EphemeralDataProtectionProvider
에 루팅된 IDataProtector
가 보호된 페이로드를 생성하는 경우 해당 페이로드는 동일한 EphemeralDataProtectionProvider
인스턴스에서 루팅된 동등한 IDataProtector
(동일한 용도 체인이 지정된 경우)에 의해서만 보호되지 않을 수 있습니다.
다음 샘플에서는 EphemeralDataProtectionProvider
를 인스턴스화하고 이를 사용하여 데이터를 보호 및 보호 해제하는 방법을 보여 줍니다.
using System;
using Microsoft.AspNetCore.DataProtection;
public class Program
{
public static void Main(string[] args)
{
const string purpose = "Ephemeral.App.v1";
// create an ephemeral provider and demonstrate that it can round-trip a payload
var provider = new EphemeralDataProtectionProvider();
var protector = provider.CreateProtector(purpose);
Console.Write("Enter input: ");
string input = Console.ReadLine();
// protect the payload
string protectedPayload = protector.Protect(input);
Console.WriteLine($"Protect returned: {protectedPayload}");
// unprotect the payload
string unprotectedPayload = protector.Unprotect(protectedPayload);
Console.WriteLine($"Unprotect returned: {unprotectedPayload}");
// if I create a new ephemeral provider, it won't be able to unprotect existing
// payloads, even if I specify the same purpose
provider = new EphemeralDataProtectionProvider();
protector = provider.CreateProtector(purpose);
unprotectedPayload = protector.Unprotect(protectedPayload); // THROWS
}
}
/*
* SAMPLE OUTPUT
*
* Enter input: Hello!
* Protect returned: CfDJ8AAAAAAAAAAAAAAAAAAAAA...uGoxWLjGKtm1SkNACQ
* Unprotect returned: Hello!
* << throws CryptographicException >>
*/
ASP.NET Core
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기