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
                    });
            }
  • 相关阅读:
    多屏共享
    md5-linux_shell
    2017年会所得
    linux无线网络配置_转
    (转)台式机华硕主板双显卡切换,怎么舒服怎么来
    Apache FtpServer 实现文件的上传和下载
    (转载)Windows 上搭建Apache FtpServer
    Eclipse常用设置
    博客园文章样式修改
    黑马公社学习
  • 原文地址:https://www.cnblogs.com/haosit/p/7747484.html
Copyright © 2011-2022 走看看