net core建站
2021-06-27 12:04
系统:win10
VS版本:2017
.NET Core 版本: 1.1
零.读取配置文件
参考:http://www.tuicool.com/articles/QfYVBvi
- 此版本无需添加其他组件
- 在
appsettings.json
配置中添加节点AppSettings
- 添加配置文件的映射模型
-
在Startup.cs ConfigureServices方法中注册
services.AddOptions(); services.ConfigureAppSettings>(Configuration.GetSection("AppSettings"));
-
Controller中使用
一、登录记录session
参考:http://www.cnblogs.com/fonour/p/5943401.html
二、发布.net core1.1.2网站到windos服务器
参考:https://docs.microsoft.com/en-us/aspnet/core/publishing/iis
- 我的服务器是windows server 2012 ,.net core网站版本为1.1.2
- 经安装好iis
- 下载安装:
.NET Core Windows Server Hosting
Microsoft Visual C++ 2015 Redistributable Update 3
- 发布.net core网站到IIS,并将应用池的.NET CLR版本修改为[无托管代码]
三、DES加密解密算法
亲测可用
public class SecurityHelper
{
#region 加密解密法一
//默认密钥向量
private static byte[] Keys = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F };
/// /// DES加密字符串
/// /// 待加密的字符串
/// 加密密钥,要求为16位
/// 加密成功返回加密后的字符串,失败返回源串 public static string EncryptDES(string encryptString, string encryptKey = "Key123Ace#321Key")
{
try
{
byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 16));
byte[] rgbIV = Keys;
byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
var DCSP = Aes.Create();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Convert.ToBase64String(mStream.ToArray());
}
catch (Exception ex)
{
return ex.Message + encryptString;
}
}
/// /// DES解密字符串
/// /// 待解密的字符串
/// 解密密钥,要求为16位,和加密密钥相同
/// 解密成功返回解密后的字符串,失败返源串 public static string DecryptDES(string decryptString, string decryptKey = "Key123Ace#321Key")
{
try
{
byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey.Substring(0, 16));
byte[] rgbIV = Keys;
byte[] inputByteArray = Convert.FromBase64String(decryptString);
var DCSP = Aes.Create();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
Byte[] inputByteArrays = new byte[inputByteArray.Length];
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Encoding.UTF8.GetString(mStream.ToArray());
}
catch (Exception ex)
{
return ex.Message + decryptString;
}
}
#endregion
}
四、过滤器定义
继承Attribute,实现IActionFilter即可
简单校验登录,获取cookie值并解密后得到用户名,未登录则跳转登录(ApplicationKey为自定义的类存放)
public class UserCheckFilterAttribute : Attribute, IActionFilter
{
public void OnActionExecuted(ActionExecutedContext context)
{
}
public void OnActionExecuting(ActionExecutingContext filterContext)
{
string encryptValue = "";
filterContext.HttpContext.Request.Cookies.TryGetValue(ApplicationKey.User_Cookie_Key, out encryptValue);
if (encryptValue == null)
{
filterContext.Result = new RedirectResult("/Account/Login");
return;
}
var userName = SecurityHelper.DecryptDES(encryptValue, ApplicationKey.User_Cookie_Encryption_Key);
if (string.IsNullOrEmpty(userName))
{
filterContext.Result = new RedirectResult("/Account/Login");
return;
}
}
}
五、注入服务
Startup.cs
中的ConfigureServices
方法调用services.AddTransient
注册服务();
待解决问题
根据路径调用脚本
net core建站
标签:cookies table 服务器 decrypt c++ 方法调用 null .com one
原文地址:http://www.cnblogs.com/Leo_wl/p/7147132.html