You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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封装自定义服务,步骤如下:
    1. 数据保护服务默认已在ASP.NET Core中注册,若需自定义加密策略可额外配置;
    2. 创建自定义存储服务,注入IDataProtector实现数据的加密和解密;
    3. 将自定义服务注册到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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 14:21:03