首页 > 编程语言 >ASP.NET Core 授权一(简单的Cookie)

ASP.NET Core 授权一(简单的Cookie)

时间:2023-12-28 17:56:56浏览次数:36  
标签:Core Task 浏览器 ASP Cookie new return public

1.HTTP无连接无状态,Cookie和Session就是解决此问题。
2.客户端向服务器端发送一个请求的时,服务端向客户端发送一个Cookie 然后浏览器将Cookie保存,之后每次HTTP请求浏览器都会将Cookie发送给服务器端,需要衡量把什么数据放到cookie中,很多数据并不是每次请求都需要发给服务端,网络开销,浪费带宽,最典型的放身份认证信息。
3.Cookie有两种保存方式,一种是浏览器会将Cookie保存在内存中,还有一种是保存在客户端的硬盘中。
4.Cookie的生存周期设置为负值 ,表示的是临时储存,不会写入cookie文件,只会存在浏览器内存中,且只会在打开的浏览器窗口或者子窗口有效,一旦浏览器关闭,cookie就会消失;Cookie的生存周期设置为 ‘0‘ ,表示仅在会话期间有效。
5.Cookie大小不能超过4kb,站点内不能超过20个,浏览器里面不能超过300个

Program.cs

//注册鉴权架构
#region Cookie
builder.Services.AddAuthentication("Cookies").AddCookie(o =>{
    o.LoginPath = "/api/Login/NoLogin";
});
#endregion

TestController.cs

[ApiController]
[Route("api/[controller]")]
public class TestController : ControllerBase
{
    [Authorize]
    [HttpGet]
    public async Task<string> Get()
    {
        return await Task.FromResult(DateTime.Now.ToString());
    }
}

LoginController.cs

[ApiController]
[Route("api/[controller]/[action]")]
public class LoginController : ControllerBase
{
    [HttpGet]
    public async Task<string> NoLogin()
    {
        return "您还没有登录";
    }
    [HttpGet]
    public async Task<string> LoginSuccess(string userName, string password)
    {
        if (userName == "admin" && password == "123456")
        {
            ClaimsIdentity identity = new ClaimsIdentity("Ctm");
            identity.AddClaim(new Claim(ClaimTypes.Name, userName));
            identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, "1"));
            await HttpContext.SignInAsync("Cookies", new ClaimsPrincipal(identity));
            return "登录成功";
        }
        else
        {
            return "登录失败";
        }
    }
}

标签:Core,Task,浏览器,ASP,Cookie,new,return,public
From: https://www.cnblogs.com/leafroc/p/17933230.html

相关文章

  • 试试这 6 个小技巧,提升 EF Core 性能
    EntityFrameWork(简称EF)以面向对象的方式操作数据库给开发人员带来了很大的便利性,但其性能问题从面世以来就一直就被广大的.NET生态开发技术人员所吐槽,然而,它真的那么不堪使用吗?试试下面这6个小技巧,瞬间极大提升EFCore性能:AsNoTracking在项目开发的时候,如果查询出来......
  • .NET Core发送HTTP Post和Get
    ///<summary>///公共方法——发送httppost请求2020年6月2日11:20:42Dennyhui///</summary>///<paramname="formData">参数</param>///<paramname="requestUri">请求地址</param>......
  • NetCore高级系列文章04---async、await原理揭秘
    async、await本质上是C#提供的语法糖,编译器编译后是状态机的调用。先看如下的一段代码,要main方法中调用了三个await方法 将此dll进行反编译为4.0的代码如下: 可见到两个Main方法,也就是说我们在程序中Main方法上加了async关键词,编译器会编译成一个是异步的一个是非异步方法,程......
  • ASP.NET Core 内置异常中间件的三种方法
    方法一app.UseExceptionHandler(configure=>{configure.Run(asynccontext=>{varexcHandler=context.Features.Get<IExceptionHandlerPathFeature>();varex=excHandler.Error;if(ex!=null){conte......
  • edgecore.yaml
    CRD-config devices_v1alpha2_device.yaml---apiVersion:apiextensions.k8s.io/v1kind:CustomResourceDefinitionmetadata:annotations:controller-gen.kubebuilder.io/version:v0.6.2creationTimestamp:nullname:devices.devices.kubeedge.iospe......
  • 归一化方法-Z-score
    归一化方法-Z-scoreZ-score定义z-score精确测量偏离数据点均值的标准差数。公式如下:\(z=\frac{data\point-mean}{standard\deviation}\),标准数学公式为:\(z=\frac{x-\mu}{\sigma}\)几个z-score相关的重要性质:z-score如果是正值,说明数据点高于均值;z-score如果是......
  • Java登陆第三十天——Cookie和Session
    会话会话就是客户端与服务器的一次交互。HTTP是一种无状态协议无状态:服务端不会记录客户端信息。有的时候,我们需要保存客户端的信息。对于登陆功能来说,保存客户端信息,可以避免客户端每访问都需要登陆一次至此,会话管理诞生。CookieCookie是一种客户端会话技术,并保存在......
  • core文件的产生及gdb调试core文件方法
    参考:https://blog.csdn.net/u011417820/article/details/71435031?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-71435031-blog-109817499.235%5Ev40%5Epc_relevant_3m_sort_dl_base1&d......
  • 不会使用 EF Core 的 Code First 模式?来看看这篇文章,手把手地教你
    EFCoreCodeFirst是什么CodeFirst是EntityFrameworkCore(简称EFCore)的一种开发模式,它允许开发人员使用纯粹的代码来定义数据模型,通过它,可以极大地提高开发效率:使用CodeFirst开发模式,你可以专注于定义领域模型和业务逻辑,而无需关注数据库的细节,能够更快地构建应......
  • Taurus .Net Core 微服务开源框架:Admin 插件【4-7】 - 配置管理-Mvc【Plugin-Metric
    前言:继上篇:Taurus.NetCore微服务开源框架:Admin插件【4-6】-配置管理-Mvc【Plugin-Doc接口测试及文档】本篇继续介绍下一个内容:系统配置节点:Mvc- Plugin-Metric接口调用次数统计:配置界面如下:1、Metric.IsEnable:配置当前接口统计插件是否可用打开开关时,可以通......