Blazor(其他项目用法一样)中的IconFont字体图标的生成和使用

本文介绍了如何从阿里矢量图标库选择并转换字体图标,下载后将其引入到Blazor项目中。通过全局引入CSS文件,并在页面中使用特定类名显示图标。详细步骤包括图标选择、转换、下载、引入和页面应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们可以进入阿里的矢量图标库,找到自己想要的图标。
阿里矢量图标库
在这里插入图片描述
图标选择好后,它提供了三种图标转换方式,如果你需要字体图标,我们点转换,然后下载到本地就行呢。

下载后的内容如下,有一个dome其他的是你自己转换的字体图标文件。
在这里插入图片描述

我们把下载完的字体图标拖入当前启动项目中,因为blazor提供的有全局引入点,我们把字体Css样式放入全局引入点,因为我们项目是服务模式,
在这里插入图片描述
客户端模式下的全局引入点请自行查阅官方文档。

点开后引入相关Css文件即可。
在这里插入图片描述
然后我们去页面使用就可以了。

 <span class="iconfont icon-bianji1"></span>

前面的 iconfont别写掉了。

页面效果如下:
在这里插入图片描述

### Blazor WebAssembly 中生成密码盐值哈希值 为了在Blazor WebAssembly项目中安全地生成密码盐值哈希值,可以采用如下方法: #### 使用 JavaScript 加密库配合 C# 由于 Blazor WebAssembly 运行于浏览器环境中,直接利用 .NET 的加密类可能不够理想。一种常见做法是通过调用JavaScript中的Web Crypto API来完成这些操作。 对于生成随机数作为盐值,在客户端可以通过 `window.crypto.getRandomValues` 方法获取强伪随机数组合[^1]。 ```csharp @inject IJSRuntime JSRuntime; private async Task<byte[]> GenerateSalt(int length) { var saltArray = new byte[length]; await JSRuntime.InvokeVoidAsync("generateRandomBytes", DotNetObjectReference.Create(this), length); return saltArray; } // 配套的js函数定义 <script> function generateRandomBytes(dotnetHelper, length) { let array = new Uint8Array(length); window.crypto.getRandomValues(array); dotnetHelper.invokeMethod('SetSalt', array); } </script> // 设置salt的方法 public void SetSalt(byte[] value) { Array.Copy(value, Salt, Math.Min(Salt.Length, value.Length)); } ``` 接着针对哈希算法的选择,推荐使用 SHA-256 或更高级别的标准。这里同样借助 Web Crypto API 实现哈希运算: ```csharp private async Task<string> HashPassword(string password, byte[] salt) { string combinedString = System.Text.Encoding.UTF8.GetString(salt)+password; byte[] hashResult = await JSRuntime.InvokeAsync<byte[]>("hashData", combinedString); StringBuilder sb = new(); foreach (byte b in hashResult){ sb.Append(b.ToString("X2")); } return sb.ToString().ToLowerInvariant(); } // 对应javascript部分 async function hashData(dataStr) { const encoder = new TextEncoder(); const data = encoder.encode(dataStr); const hashBuffer = await crypto.subtle.digest('SHA-256', data); const hashArray = Array.from(new Uint8Array(hashBuffer)); // convert buffer to byte array return hashArray.map(b => ('0' + b.toString(16)).slice(-2)) // convert bytes to hex string .join(''); } ``` 以上方式不仅能够有效保障安全性,同时也遵循了现代Web开发的最佳实践原则。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值