国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 辉县市| 伽师县| 门源| 云南省| 泸溪县| 疏附县| 商丘市| 吉木萨尔县| 十堰市| 左云县| 南和县| 宁陵县| 崇阳县| 沾益县| 化隆| 清水县| 松桃| 东乌| 文水县| 河间市| 海淀区| 金川县| 高陵县| 留坝县| 东明县| 巨野县| 安平县| 汉阴县| 南乐县| 梨树县| 玛多县| 遂川县| 香河县| 临朐县| 澎湖县| 宜章县| 梓潼县| 黄大仙区| 瑞金市| 安岳县| 宜川县|