ASP.NET Core2.2 和2.1 版本中对cookie的设置和存储

1.需要在startup.cs中添加cookie的服务

 services.Configure<CookiePolicyOptions>(option =>{
                option.CheckConsentNeeded=ContextBoundObject=>true;
                option.MinimumSameSitePolicy=SameSiteMode.None;
            }); //添加cookie的服务

图示:

2.在startup.cs中启动服务

 app.UseCookiePolicy();      //启用cookie服务

图示:

startup.cs中添加的引用:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;

//参数验证,路由的参数验证配置
using Microsoft.AspNetCore.Routing;
using Microsoft.AspNetCore.Routing.Constraints;
//mysql基础配置引用
using Online.Examination.Web.Repositories;
using Online.Examination.Web.Controllers;
using Online.Examination.Web.Repositories.DBBase;

图示:

3.在控制层使用Append方法向客户端添加cookie

//cookie的引用    需要引用这三个包

using Microsoft.AspNetCore.Builder;

using Microsoft.AspNetCore.CookiePolicy;

using Microsoft.AspNetCore.Http.Features;

图示:

4.最后一步:很重要  如果服务器要想客户端存储cookie,客户端需要向服务器发送第一次请求,请求允许使用cookie

所以需要在控制层中写入方法,这个方法只需要请求一次,就可以向客户端存储cookie了

5.js代码示例

$(function() {
    $.post("/login/OkCookie", function() {}) //如果使用cookie,客户端必须向服务端发送一次请求////
})

function login() {
    $(".error").text("");
    var uname = $("input[name=‘name‘]").val();
    var pwd = $("input[name=‘pwd‘]").val();
    var type = $("input[name=‘login_type‘]:checked").val();
    if (uname == "" || pwd == "") return false;
    $.post("/login/login", { "uname": uname, "pwd": pwd, "type": type }, function(msg) {
        if (msg.message == "success") {
            window.location.href = "index.html?id=" + msg.users.name;
        } else {
            $(".error").text("密码或账号错误");
        }
    })
}

图示:

6.关于cookie其他的使用方法

代码:

 protected void DeleteCookies(string key)    //删除指定的cookie
        {
            HttpContext.Response.Cookies.Delete(key);
        }

        protected string GetCookies(string key)     //获取指定的cookie
        {
            HttpContext.Request.Cookies.TryGetValue(key, out string value);
            if (string.IsNullOrEmpty(value))
                value = string.Empty;
            return value;
        }

图示:

原文地址:https://www.cnblogs.com/han-guang-xue/p/10612265.html

时间: 2024-11-13 14:40:01

ASP.NET Core2.2 和2.1 版本中对cookie的设置和存储的相关文章

一步一步带你做WebApi迁移ASP.NET Core2.0

随着ASP.NET Core 2.0发布之后,原先运行在Windows IIS中的ASP.NET WebApi站点,就可以跨平台运行在Linux中.我们有必要先说一下ASP.NET Core. ASP.NET Core 是新一代的 ASP.NET,第一次出现时的代号为 ASP.NET vNext,后来命名为ASP.NET 5,随着它的完善与成熟,最终命名为 ASP.NET Core,这表明它已不是 ASP.NET 的升级,而是一个重新设计的Web开发框架.而它一个非常重要的变化就是它不再依赖于I

centos7.x docker 跑asp.net core2.x项目

windows内: 做一个vs2017(15.8版本)新建.net core项目 asp.net core web应用程序api项目模板 asp.net core2.1 不选docker支持(因为在windows下配docker支持非常麻烦) https开着,不过默认发布到linux的时候最后好像都是http: 新建得项目WebApplication1,调试的话 https://localhost:5001/api/values会返回一个json文件内容是 ["value1",&quo

ASP.NET Core2.1 你不得不了解的GDPR(Cookie处理)

前言 时间一晃 ASP.NET Core已经迭代到2.1版本了. 迫不及待的的下载了最新的版本,然后生成了一个模版项目来试试水. ...然后就碰到问题了... 我发现..cookie竟然存不进去了..(怨念+100) 找了各种资料,无果  最后无奈只得麻烦善友老师..老师回了一句GDPR 虽然一头雾水,但是还是去百度了一发.终于找到原因..(E文好的可以自行跳转,不好的..就往下看) 官方文档:https://docs.microsoft.com/en-us/aspnet/core/securi

asp.net core2.0 部署centos7/linux系统 --守护进程supervisor(二)

原文:asp.net core2.0 部署centos7/linux系统 --守护进程supervisor(二) 续上一篇文章:asp.net core2.0 部署centos7/linux系统 --安装部署(一),遗留的问题而来,对程序添加守护进程,使网站可以持续化的运行起来. ? 1.介绍supervisor ?? ?Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,

将asp.net core2.0项目部署在IIS上运行

原文:将asp.net core2.0项目部署在IIS上运行 前言: ?与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是独立运行的.它独立运行在控制台应用程序中,并通过dotnet运行时命令调用.它并没有被加载到IIS工作进程中,但是IIS却加载了名为AspNetCoreModule的本地Module,这个Module用于执行外部的控制台程序. ?部署之前要确保你的IIS上已经安装了AspNetCoreModule托管模块,如果没有的话,点击

深度理解IIS下部署ASP.NET Core2.1 Web应用拓扑图

原文:深度理解IIS下部署ASP.NET Core2.1 Web应用拓扑图 IIS部署ASP.NET Core2.1 应用拓扑图 我们看到相比Asp.Net, 出现了3个新的组件:ASP.NET Core Module.Kestrel.dotnet.exe, 后面我们会理清楚这三个组件的作用和组件之间的交互原理. 引入Kestrel的原因 进程内HTTP服务器,与老牌web服务器解耦,实现跨平台部署 IIS.Nginx.Apache等老牌web服务器有他们自己的启动进程和环境:为了实现跨平台部署

ASP.NET 5 DNX SDK删除旧版本

ASP.NET 5各种升级后旧版本的DNX不会删除,想删除旧版本的DNX,可以通过以下命令完成 首先打开CMD或者Powershell 1.先输入dnvm看看命令中是否有uninstall 2.如果没有的话先升级dnvm dnvm update-self 3.如果有uninstall的话可以执行以下命令 dnvm list 结果大致如下: Active Version Runtime Architecture OperatingSystem Alias ------ ------- ------

asp.net core2.0 登录效果实现

基础 新建项目的,新建登录页的基本操作略,主要说下在实现登录过程碰到的问题,废话不多说,让我们进入主题. 验证码 asp.net.core2.0本身有提供system.drawing命名空间,但是没有Image,Graphics,Bitmap等对象的实现,只能引用第三方的dll来操作. 1.在vs的项目里打开nuget包管理器,搜索关键字"drawing",显示很多可用的包,选择安装"zkweb.system.drawing" 包 2.实现随机字符串的图片显示代码

使用 IIS 在 Windows 上托管 ASP.NET Core2.0

准备: 操作系统:Windows Server 2008 R2 或更高版本 开发环境:VS2017 第一步:新建项目ASP.NET Core Web应用程序 在 Visual Studio 中,选择“文件”>“新建”>“项目”. 在新建项目对话框的左侧窗格选择“.NET CORE”, 在中间窗格中,点击“ASP.NET Core Web 应用程序(.NET Core)” 修改自己的项目命名及存储位置 点击确定 在版本选择器下拉框中选择“ASP.NET Core 2.0”选择“Web 应用程序(