Maison > développement back-end > Tutoriel C#.Net > 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

高洛峰
Libérer: 2017-02-27 16:34:16
original
2496 Les gens l'ont consulté

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();
}
Copier après la connexion

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);
    }
  }
}
Copier après la connexion

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 !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal