1、jQuery 可以通过 jquery.cookie.js 插件来操作 Cookie
2、.NET Core 3.1 Cookies 操作
3、.NET Core 3.1 API Session 操作
4、.NET Core 3.1 MVC Session 操作
官方地址
Github 地址
使用 jquery.cookie.js 之前需要先引入 jQuery:
<script src="/path/to/jquery.min.js"></script>
<script src="/path/to/jquery.cookie.js"></script>
我们可以使用第三方资源库引入这两个文件:
<script src="https://cdn.staticfile.org/jquery/3.4.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
完整代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script src="lib/jquery/dist/jquery.js"></script>
<script src="js/jquery.cookie.js"></script>
</head>
<body>
<input id="btnShow" type="button" value="创建cookie" />
<input id="btnLogin" type="button" value="获取cookie" />
<input id="btnLoginCors" type="button" value="删除cookie" />
<script>
$("#btnShow").click(function () {
var time = new Date();
var year = time.getFullYear();
var month = time.getMonth();
var day = time.getDate();
var hour = time.getHours();
var minute = time.getMinutes();
var second = time.getSeconds();
var time_stamp = hour.toString() + minute.toString() + second.toString();
console.log("123a【" + hour + ":" + minute + ":" + second + "】");
$.cookie('username', 'liudehua');
$.cookie('password', 'abcd123456', { expires: 7 });
$.cookie('age', '100', { expires: 7, path: '/' });
$.cookie('time', time_stamp);
});
$("#btnLogin").click(function () {
console.log("123b【" + $.cookie('username') + "】");
console.log("所有cookie【" + JSON.stringify($.cookie()) + "】");
});
$("#btnLoginCors").click(function () {
$.removeCookie('username');
$.removeCookie('age', { path: '/' }); // => true
console.log("123c")
});
</script>
</body>
</html>
--------------------------------------------- .NET Core 3.1 Cookies ---------------------------------------------
.NET Core 3.1 设置Cookies
--方式1
HttpContext.Response.Cookies.Append("UserName", "超人");
--方式2
HttpContext.Response.Cookies.Append("password","123456",
new CookieOptions
{
Expires = DateTime.Now.AddDays(1)
});
--方式3
CookieOptions options = new CookieOptions();
options.Expires = DateTime.Now.AddDays(1);
HttpContext.Response.Cookies.Append("password", "123456", options);
.NET Core 3.1 获取Cookies
string value = "";
HttpContext.Request.Cookies.TryGetValue("password", out value);
string auth = "";
HttpContext.Request.Cookies.TryGetValue("AuthCookie", out auth);
var sid = HttpContext.User.FindFirst(ClaimTypes.Sid);
var userName = HttpContext.User.Claims.First().Value;
var adminAccount = HttpContext.User.Claims.SingleOrDefault(t => t.Type == "UserName");
string account = adminAccount == null ? "" : adminAccount.Value;
if (HttpContext.User.Identity.IsAuthenticated)
{
var uName = HttpContext.User.Claims.First().Value;
}
else
{
string a = "";
}
.NET Core 3.1 删除Cookies
HttpContext.Response.Cookies.Delete("password");
--------------------------------------------- .NET Core 3.1 API Session ---------------------------------------------
1、Startup.cs
public void ConfigureServices(IServiceCollection services)
{
#region session
services.AddDistributedMemoryCache();
services.AddSession();
//services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
//services.AddHttpContextAccessor();
#endregion
services.AddControllers();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseSession();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
2、WeatherForecastController.cs
[HttpGet]
public IEnumerable<WeatherForecast> Get()
{
#region session
HttpContext.Session.SetString("abcd", "12345678");
var value = HttpContext.Session.GetString("abcd");
#endregion
}
--------------------------------------------- .NET Core 3.1 MVC Session ---------------------------------------------
1、Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddSession();
services.AddControllersWithViews();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseSession();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
2、HomeController.cs
public IActionResult Index()
{
HttpContext.Session.SetString("abc", "123");
var value = HttpContext.Session.GetString("abc");
return View();
}