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
                    });
            }
  • 相关阅读:
    Codefoces Gym 101652 【最大连续和】
    HYSBZ 4034 【树链剖分】+【线段树 】
    Codeforces Gym 101291C【优先队列】
    Codeforces gym 101291 M (最长交替子序列)【DP】
    HDU 3308 LCIS (经典区间合并)【线段树】
    POJ 3237 Tree (树链剖分+边权转点权)
    POJ 2763 Housewife Wind (树链剖分+边权转点权)
    P1054 等价表达式
    P1107 [BJWC2008]雷涛的小猫
    P1552 [APIO2012]派遣
  • 原文地址:https://www.cnblogs.com/haosit/p/7747484.html
Copyright © 2011-2022 走看看