ASP.NET Core 6.0 MVC中能否使用ProtectedLocalStorage?需添加指定代码吗?
在ASP.NET Core 6.0 MVC中使用ProtectedLocalStorage的说明
仅在Program.cs中添加builder.Services.AddScoped<ProtectedLocalStorage>();是无法直接使用的,原因如下:
- ProtectedLocalStorage是Blazor框架专属组件,依赖Blazor的JavaScript互操作体系实现加密本地存储,而ASP.NET Core MVC是传统服务器端渲染框架,没有Blazor的运行环境支撑。
- 如果想在MVC中实现类似的加密本地存储效果,建议基于ASP.NET Core自带的数据保护API封装自定义服务,步骤如下:
- 数据保护服务默认已在ASP.NET Core中注册,若需自定义加密策略可额外配置;
- 创建自定义存储服务,注入
IDataProtector实现数据的加密和解密; - 将自定义服务注册到DI容器,在控制器或视图中注入使用。
自定义加密本地存储示例代码
// 自定义加密本地存储服务类 public class EncryptedLocalStorage { private readonly IDataProtector _dataProtector; public EncryptedLocalStorage(IDataProtectionProvider protectionProvider) { // 创建指定用途的数据保护器 _dataProtector = protectionProvider.CreateProtector("EncryptedLocalStorage_Purpose"); } // 加密方法 public string ProtectData(string rawData) { return _dataProtector.Protect(rawData); } // 解密方法 public string UnprotectData(string protectedData) { return _dataProtector.Unprotect(protectedData); } } // 在Program.cs中注册服务 builder.Services.AddScoped<EncryptedLocalStorage>();
提示:MVC中操作localStorage需要通过前端JavaScript完成,后端仅负责数据的加密解密逻辑,你需要在视图中编写JS代码,将加密后的数据写入localStorage,或读取后传递到后端解密。
内容的提问来源于stack exchange,提问作者andreaskev
相关产品推荐
相关产品推荐

