zoukankan      html  css  js  c++  java
  • .Net Core 学习使用Session、和Cookie验证身份

    一、使用Session

    1.1 Status.cs 中配置

            public void ConfigureServices(IServiceCollection services)
            {
                services.AddMvc();
                services.AddDistributedMemoryCache();
                services.AddSession(options =>
                {
                    options.Cookie.Name = "haos.Session";
                    options.IdleTimeout = TimeSpan.FromHours(1);//设置session的过期时间
                    options.Cookie.HttpOnly = true;
                    options.Cookie.SecurePolicy = CookieSecurePolicy.SameAsRequest;
                    
                });
            }
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
            {
                app.UseSession();
                //在UseMvc前调用
                app.UseMvc(routes =>
                {
                    routes.MapRoute(
                        name: "default",
                        template: "{controller=Home}/{action=Index}/{id?}");
                });
            }

    1.2 session必须在浏览器中,调用才有效果。

    二、Cookie验证身份

    2.1 Status.cs 中配置

            public void ConfigureServices(IServiceCollection services)
            {
                services.AddMvc();
                services.AddAuthentication("haos")
                .AddCookie("haos", (option) =>
                {
                    option.LoginPath = "/Account/login";
                    option.LogoutPath = "/Account/logout";
                    option.ExpireTimeSpan = TimeSpan.FromDays(1);
                    option.AccessDeniedPath = new PathString("/Account/Login");
                    option.Cookie = new CookieBuilder() { Name = "haos.develop" };
                });
            }
            public void Configure(IApplicationBuilder app, IHostingEnvironment env)
            {
                app.UseAuthentication();
            }

    2.2 实现登录方法

            public async Task LoginSignIn(object member)
            {
                var identity = new Claim[] {
                    new Claim(ClaimTypes.Name, ""),
                    new Claim(ClaimTypes.MobilePhone, ""),
                    new Claim(ClaimTypes.PrimarySid,""),
                    new Claim("id",""),
                };
                
               await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme,
                    new ClaimsPrincipal(new ClaimsIdentity(identity, "haos")),
                    new AuthenticationProperties()
                    {
                        ExpiresUtc = DateTime.UtcNow.Add(TimeSpan.FromDays(7)),
                        IsPersistent = true
                    });
            }
  • 相关阅读:
    JS创建类和对象(好多方法哟!)
    BMI身体质量指数计算公式
    点击button显示文字
    xml中设置button的背景颜色
    Android layout的属性介绍
    eclipse中自动补齐代码设置
    android开发中常用的快捷键
    eclipse修改Android工程图标显示
    Android运行报错
    读《人月神话》有感
  • 原文地址:https://www.cnblogs.com/haosit/p/7747484.html
Copyright © 2011-2022 走看看