>  기사  >  백엔드 개발  >  ASP.NET Core 데이터 보호는 확인 토큰을 생성합니다.

ASP.NET Core 데이터 보호는 확인 토큰을 생성합니다.

高洛峰
高洛峰원래의
2017-02-27 16:34:162434검색

ASP.NET Core Data Protection은 비대칭 암호화 기능을 제공할 뿐만 아니라 유연한 키 저장 방법과 일관된 암호화 및 암호 해독 인터페이스(보호 및 보호 해제)도 제공합니다. Session에서도 사용되며, Cookie 검증에서도 사용되며, OpenIdConnect에서도 사용됩니다. . . 물론 애플리케이션 개발에도 사용할 수 있습니다. 예를 들어 이 블로그 게시물에서는 계정 활성화를 위한 확인 토큰을 생성하는 데 사용됩니다.

먼저 Startup.ConfigureServices()에서 DataProtection 서비스를 등록합니다(IDataProtectionProvider 인터페이스 구현 삽입).

public void ConfigureServices(IServiceCollection services)
{
  services.AddDataProtection();
}

그런 다음 DataProtection 클래스의 생성자에 IDataProtectionProvider 인터페이스를 추가하고 이 인터페이스를 사용하여 DataProtector를 만든 다음 이를 사용하여 SecureDataFormat을 만듭니다. 마지막으로 SecureDataFormat.Protect() 메서드를 사용하여 계정을 활성화하는 토큰을 생성합니다. SecureDataFormat.Uprotect()를 사용하여 토큰을 해독합니다. 다음과 같이 샘플 코드를 완성합니다.

public class HomeController : Controller
{
  private readonly ISecureDataFormat<string> _dataFormat;

  public HomeController(IDataProtectionProvider _dataProtectionProvider)
  {
    var dataProtector = _dataProtectionProvider.CreateProtector(typeof(HomeController).FullName);
    _dataFormat = new SecureDataFormat<string>(new StringSerializer(), dataProtector);
  }

  public string GenerateToken()
  {
    return _dataFormat.Protect(Guid.NewGuid().ToString() + ";" + DateTime.Now.AddHours(10));
  }

  public string DecryptToken(string token)
  {
    return _dataFormat.Unprotect(token);
  }

  private class StringSerializer : IDataSerializer<string>
  {
    public string Deserialize(byte[] data)
    {
      return Encoding.UTF8.GetString(data);
    }

    public byte[] Serialize(string model)
    {
      return Encoding.UTF8.GetBytes(model);
    }
  }
}

위 내용이 이 글의 전체 내용이기를 바랍니다. 모두의 학습에 도움이 될 것이며, 모두가 PHP 중국어 웹사이트를 지지해주기를 바랍니다.

ASP.NET Core 데이터 보호 및 확인 토큰 생성과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.