Heim  >  Artikel  >  Backend-Entwicklung  >  Der ASP.NET Core-Datenschutz generiert ein Überprüfungstoken

Der ASP.NET Core-Datenschutz generiert ein Überprüfungstoken

高洛峰
高洛峰Original
2017-02-27 16:34:162487Durchsuche

ASP.NET Core Data Protection bietet nicht nur asymmetrische Verschlüsselungsfunktionen, sondern auch flexible Schlüsselspeichermethoden und konsistente Verschlüsselungs- und Entschlüsselungsschnittstellen (Schützen und Ungeschützt). Es wird in Session verwendet, es wird bei der Cookie-Überprüfung verwendet und es wird auch in OpenIdConnect verwendet. . . Natürlich können Sie es auch in der Anwendungsentwicklung verwenden. In diesem Blogbeitrag wird es beispielsweise zur Generierung eines Verifizierungstokens für die Aktivierung eines Kontos verwendet.

Registrieren Sie zunächst den DataProtection-Dienst (injizieren Sie die Implementierung der IDataProtectionProvider-Schnittstelle) in Startup.ConfigureServices():

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

Dann fügen Sie die IDataProtectionProvider-Schnittstelle im Konstruktor der Klasse hinzu, die DataProtection verwendet, und verwenden Sie diese Schnittstelle, um einen DataProtector zu erstellen, erstellen Sie dann ein SecureDataFormat damit und verwenden Sie schließlich die SecureDataFormat.Protect()-Methode, um ein Token zum Aktivieren des Kontos zu generieren. und verwenden Sie SecureDataFormat.Uprotect(), um das Token zu entschlüsseln. Vervollständigen Sie den Beispielcode wie folgt:

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);
    }
  }
}

Das Obige ist der gesamte Inhalt dieses Artikels Ich hoffe, dass es allen beim Lernen hilft und ich hoffe, dass jeder die chinesische PHP-Website unterstützt.

Weitere Artikel zum Thema ASP.NET Core-Datenschutz und Generierung von Verifizierungstokens finden Sie auf der chinesischen PHP-Website!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn