国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

基于ASP.NET Core數據保護生成驗證token示例

2024-07-10 13:32:06
字體:
來源:轉載
供稿:網友

ASP.NET Core Data Protection 不僅提供了非對稱加密能力,而且提供了靈活的秘鑰存儲方式以及一致的加解密接口(Protect與Unprotect)。Session中用到了它,Cookie驗證中用到了它,OpenIdConnect中也用到了它。。。當然你也可以在應用開發中使用它,比如這篇博文中就是用它生成激活帳戶的驗證token。

首先在 Startup.ConfigureServices() 中注冊 DataProtection 服務(注入 IDataProtectionProvider 接口的實現):

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

然后在使用 DataProtection 的類的構造函數中添加 IDataProtectionProvider 接口,并用該接口創建 DataProtector ,接著以此創建 SecureDataFormat ,最后用 SecureDataFormat.Protect() 方法生成激活帳戶的 token ,用 SecureDataFormat.Uprotect() 解密 token,完整的示例代碼如下:

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到ASP.NET教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吉水县| 石首市| 长治市| 罗城| 舟山市| 香河县| 怀安县| 德昌县| 宝清县| 香港 | 招远市| 扎囊县| 广州市| 福建省| 左贡县| 都匀市| 长春市| 苍梧县| 饶阳县| 涿鹿县| 林甸县| 色达县| 德清县| 长葛市| 丽水市| 北川| 宜黄县| 榆社县| 六安市| 福安市| 福泉市| 缙云县| 轮台县| 泰顺县| 崇州市| 宁武县| 铜山县| 察隅县| 涪陵区| 偏关县| 柏乡县|