Maison  >  Article  >  développement back-end  >  La protection des données ASP.NET Core génère un jeton de vérification

La protection des données ASP.NET Core génère un jeton de vérification

高洛峰
高洛峰original
2017-02-27 16:34:162486parcourir

ASP.NET Core Data Protection fournit non seulement des capacités de chiffrement asymétrique, mais fournit également des méthodes de stockage de clés flexibles et des interfaces de chiffrement et de déchiffrement cohérentes (Protéger et Déprotéger). Il est utilisé dans la session, dans la vérification des cookies et également dans OpenIdConnect. . . Bien entendu, vous pouvez également l'utiliser dans le développement d'applications. Par exemple, dans cet article de blog, il est utilisé pour générer un jeton de vérification pour l'activation d'un compte.

Enregistrez d'abord le service DataProtection (injectez l'implémentation de l'interface IDataProtectionProvider) dans Startup.ConfigureServices() :

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

Puis ajoutez l'interface IDataProtectionProvider dans le constructeur de la classe utilisant DataProtection, et utilisez cette interface pour créer un DataProtector, puis créez un SecureDataFormat avec, et enfin utilisez la méthode SecureDataFormat.Protect() pour générer un token pour activer le compte, et utilisez SecureDataFormat.Uprotect() pour déchiffrer le jeton, complétez. L'exemple de code est le suivant :

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

Ce qui précède représente l'intégralité du contenu de cet article. . J'espère que cela sera utile à l'apprentissage de tout le monde et j'espère que tout le monde soutiendra le site Web PHP en chinois.

Pour plus d'articles liés à la protection des données ASP.NET Core et à la génération de jetons de vérification, veuillez faire attention au site Web PHP chinois !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn