- 博客(48)
- 资源 (3)
- 收藏
- 关注
原创 微信小程序访问开发者服务器时最简单的token鉴权实现思路
本文概述了小程序鉴权流程:小程序调用wx.login获取code,提交至服务器;服务器用code换取openId,查询用户信息,生成带过期时间的token并缓存;返回token给小程序,后续请求携带token,服务端验证其有效性。该方案实现简单,适用于小型项目,但需注意设置合理过期时间、支持token刷新及退出时清理缓存,以保障安全。
2026-09-25 23:55:18
218
原创 .NET Framework 下 C# MVC 项目敏感信息安全存储方法
本文探讨了.NET Framework下C# MVC项目中敏感信息安全管理方案。针对硬编码敏感信息存在的安全风险(如源码泄露、合规问题),提出基于Windows DPAPI的加密存储方案。该方案通过管理员初始化页面输入敏感信息,服务器端使用DPAPI加密后存储至私有目录,业务代码使用时动态解密。文章详细介绍了DPAPI的优势(机器/用户绑定、自动密钥管理)并提供了完整的C#实现代码,包括加密/解密工具类和管理员控制逻辑,确保敏感信息仅在内存中临时使用,满足安全合规要求。
2026-02-02 15:55:09
516
原创 C#+SQL:使用参数化查询通过values子句插入多行数据
摘要:本文介绍了在SQL中使用参数化查询批量插入多行数据的方法。通过C#代码示例展示了如何构建动态参数化查询,包括创建参数占位符列表(@name0,@age0)和对应的参数值集合。关键点包括使用SqlParameter对象封装参数、通过AddRange方法批量添加参数,以及使用string.Join组合多个VALUES子句。这种方法既能实现高效批量插入,又能有效防止SQL注入攻击,同时保持代码的可读性和安全性。
2026-01-29 15:05:53
246
原创 C#中运用JWT机制进行安全传输和信息认证
JWT是一种基于Token的跨域认证解决方案,服务器端通过密钥生成Token返回给客户端,客户端存储后随请求发送。服务器提供生成Token、验证有效性和解析用户信息的方法。本文仅提供在.NET Framework MVC框架下,生成JWT字符串、验证Token等功能的C#代码,实际应用中,Token通常放在请求头的Authorization字段中,建议使用认证过滤器实现权限控制。
2026-01-28 10:05:11
592
原创 C#语言版:解密微信小程序中的加密信息(以wx.getUserInfo获取的encryptedData为例)
本文介绍了微信小程序敏感数据解密方法,使用C#实现wx.getUserInfo接口返回的encryptedData解密流程。微信采用AES-128-CBC算法加密数据,需使用SessionKey、IV和PKCS7填充规则。本文提供了完整的C#解密代码示例,通过AES.Create()创建解密器,将Base64编码的加密数据、会话密钥和初始向量转换为字节数组后进行解密,最终返回JSON格式的明文数据。该方法适用于获取用户openid、unionid等敏感信息,为开发者提供安全可靠的数据解密方案。
2025-12-24 14:41:08
348
原创 创建和使用 Promise 函数的几个注意点
本文总结了JavaScript中Promise使用的5个关键点:1)手动创建Promise时必须处理reject;2)resolve/reject只能传一个参数,多参数需封装为数组或对象;3)封装Promise函数时无需加async;4)Promise执行顺序为同步代码优先;5)调用Promise函数的不同方式及返回值差异。这些细节能帮助开发者更规范地使用Promise处理异步操作。
2025-12-24 11:49:46
226
原创 SQL联合查询中如何显示COUNT为0的记录
本文探讨了SQL查询中GROUP BY和COUNT函数统计时WHERE条件导致分组数据缺失的问题。当WHERE子句过滤掉某些记录后,分组统计会遗漏计数为0的结果。解决方案是使用LEFT JOIN联合查询结合子查询,先对满足条件的记录进行分组统计,再与主表关联,并通过ISNULL函数将NULL值转换为0。这种方法确保了所有分组都能完整显示,包括计数为0的记录,是解决此类问题的通用方案。
2025-09-30 10:09:02
361
原创 微信小程序input组件通过bindinput事件解决拼音阶段字符被算入maxlength长度限制问题
在开发微信小程序时,我们经常会遇到需要对用户输入内容进行长度限制的场景。但在中文输入场景中,其将拼音阶段的临时字符纳入长度计算,用户使用拼音输入法时,未转化为汉字的拼音字符串会被误判为有效输入,导致输入框过早触发截断。这一设计缺陷在部分安卓机上可通过调整输入法设置缓解问题,但iOS系统无此类设置,常造成输入流程被迫终止,严重影响交互体验。通过弃用maxlength属性,改用bindinput事件,动态监听输入内容,在bindinput回调中实时获取输入值,从而达到对对文本长度的控制。
2025-03-11 14:14:21
856
原创 SQL排序技巧:日期大于等于今天的记录顺序排列,日期小于今天的记录倒序排列
在数据管理和分析中,排序是一项基本且至关重要的操作,SQL查询提供了强大的排序功能,允许用户根据特定规则对查询结果进行排序。
2025-03-10 16:25:53
944
原创 微信小程序接入DeepSeek模型(火山方舟),并在视图中流式输出
DeepSeek,作为一款先进的自然语言处理模型,以其强大的文本理解和生成能力著称。DeepSeek模型支持流式处理,这意味着它可以边计算边输出,而不必等待整个生成过程结束后再输出结果,大大缩短了用户的等待时间。通过流式输出,DeepSeek模型可以在处理过程中实时地将结果发送给小程序,小程序前端则能够立即接收到这些数据,并在视图中动态展示出来。本文中的DeepSeek模型为火山方舟(字节跳动火山引擎)中的DeepSeek大模型,当前可以免费使用。
2025-03-03 21:33:54
3423
原创 微信小程序调用百度“菜品识别”API
一、获取API使用权限(该API每年有3000次免费调用次数)菜品识别 - 图像识别 | 百度智能云文档。
2025-01-10 16:05:06
1119
原创 C#:MVC返回FileResult文件对象,并在VIEW视图中下载
FileResult是一个抽象类,有3个继承子类:FilePathResul、FileContentResult、FileStreamResult,表示一个文件对象,三者区别在于,FilePath 通过路径传送文件到客户端,FileContent 通过二进制数据的方式,而FileStream 是通过Stream(流)的方式来传送。Controller为这三个文件结果类型提供了一个名为File的重载方法。
2023-04-11 16:05:02
2376
原创 SqlServer中查询结果实现分页功能
SqlServer中查询结果实现分页功能,1.通过top...where ...not in条件限制;2.通过ROW_NUMBER()函数实现;3.通过offset和fetch子句实现。
2022-06-24 11:53:15
2424
原创 C#中利用NPOI包操作Excel文件
利用NPOI包可以非常方便地创建、修改导出Excel文件。下载npoi.2.5.2.nupkg及其依赖项首先需要通过NuGet管理器导入NPOI包,并且在使用前加入如下引用:using NPOI.SS.UserModel; //提供ISheet、IRow、ICell等接口using NPOI.XSSF.UserModel; //提供相关类操作扩展名为xlsx的2007之后版本Excel文件using NPOI.HSSF.UserModel; //提供相关类操作扩展名为xls的20
2022-01-07 16:23:26
1169
原创 JS动态加载JSON文件并读取数据
JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它采用纯文本格式来存储和表示数据,层次结构简洁和清晰,是理想的数据交换语言。JSON类似 XML,比 XML 更小、更快,更易解析。关键词:动态加载JSON文件、读取JSON文件数据demo.json文件内容var json={"item1":"string","item2":["var1","var2","var3"]}这其实不是一个标准格式的json文件,而是在文件中自定义一
2022-01-06 22:27:17
8061
原创 C#中利用NPOI包操作Word文件
之前一直通过在VS里添加引用COM里Microsoft Word 16.0 Object Library引用,导入Microsoft.Office.Interop.Word命名空间,使用此命名空间里的相关类对Word文件进行操作。这种方法有个致命缺点,就是当电脑里未安装Word软件或者Word软件版本与引用的COM库里的版本不一致时,会导致操作Word文件失败。其实可以利用NuGet里的NPOI包来对Word文件进行操作。下载npoi.2.5.2.nupkg及其依赖项通过NuGet管理器导入NP
2021-06-21 23:45:23
7408
1
原创 C#通过写注册表设置程序随系统启动
要将编写的程序设置成随系统启动,可以通过读写注册表操作实现。有两个要注意的地方,一是要引入Microsoft.Win32这个命名空间,此空间用来提供操作注册表的类——
2021-06-11 23:23:18
903
2
原创 MVC中生成图形验证码并验证(详细)
一、思路通过Random对象生成随机数 ,通过Session对象保存生成的随机验证码,通过Graphics绘图对象在Bitmap位图上进行绘制,并将绘完的位图对象
2021-06-05 00:17:44
1925
2
原创 MVC中生成图形验证码并显示(极简)
一、控制器代码using System;using System.Drawing;using System.Drawing.Imaging;using System.IO;using System.Web.Mvc;namespace XLZXXX.Controllers { public class LoginController : Controller { public ActionResult Index(){ return V
2021-06-04 17:16:16
320
原创 使用JS判断访问设备是电脑还是手机
一、前言有时在编写前端页面视图时,需要根据用户不同的访问设备(手机或电脑)对页面设置不同显示样式或跳转到不同的页面。可以通过JS代码获取Navigator对象的userAgent属性,通过
2021-06-03 22:24:26
12934
2
转载 HTTP Content-type对照表(Mine-Type)
扩展名 Content-Type(Mime-Type) 扩展名 Content-Type(Mime-Type) 扩展名 Content-Type(Mime-Type) 0.001 application/x-001 0.301 application/x-301 0.323 ...
2021-06-02 15:45:45
515
原创 MVC中客户端向服务器端上传base64格式的图片
通过HTML中的FileReader对象将图片内容转换为base64字符串,再通过jquery.ajax将base64值传递给控制器,以达到上传文件的目的。
2021-06-02 10:52:12
508
2
原创 cropper动态裁剪图片(极简)
借助cropper插件可以很简单地实现客户端的图片自定义裁剪。cropper插件下载链接(含v1.5.11版Cropper.js、Cropper.css,以及jquery.min.js):
2021-06-02 10:14:20
553
原创 禁止对文本框内指定字符(部分内容)进行修改
在使用文本控件input和textarea时,有时想禁止对其中某些特殊文本进行编辑,比如需要由程序生成的某些自定义特殊标记[img src=...]等。可以通过文本控件的selection
2021-05-28 15:32:06
2266
原创 MVC中通过jquery实现图片预览、上传,并对文件类型、大小进行判断(极简)
一、易出错问题重要提示当直接通过提交表单数据上传文件时,文件上传控件input一定要添加name属性,并且不同的控件也要设置不同的name属性值,否则会导致控制器中的Request.Files方法获取上传文件失败。估计Request.Files方法是通过input控件的name属性来识别并区别上传文件的。一、动态增减上传控件,多文件上传视图代码@{Layout=null;}<!DOCTYPE html><html><head> <me
2021-05-27 18:26:25
539
原创 C#获取文件物理路径(绝对路径)
在WinForm窗体应用程序和Web应用程序中,为了上传文件、读取绝对路径下的文件等功能,需要获取文件的物理路径,可以使用以下这些常用方法。一、在WinForm窗体应用程序中可用以下方法获取应用程序文件所在文件夹:System.Environment.CurrentDirectory;System.IO.Directory.GetCurrentDirectory();System.Windows.Forms.Application.StartupPath;System.AppDomain
2021-05-21 23:45:02
4142
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅