using Microsoft.AspNetCore.Authorization;using Microsoft.AspNetCore.Mvc;namespace HelloCore2.Controllers{ ???[Authorize] ???public class AdminController : Controller ???{ ???????public IActionResult Index() ???????{ ???????????return View(); ???????} ???}}
using Microsoft.AspNetCore.Authentication;using Microsoft.AspNetCore.Authentication.Cookies;using Microsoft.AspNetCore.Mvc;using System.Collections.Generic;using System.Security.Claims;namespace HelloCore2.Controllers{ ???public class AccountController : Controller ???{ ???????public IActionResult Login() ???????{ ???????????var claims = new List<Claim>() ???????????{ ???????????????new Claim(ClaimTypes.Name,"wolf"), ???????????????new Claim(ClaimTypes.Role,"admin"), ???????????}; ???????????var claimidentity = new ClaimsIdentity(claims,CookieAuthenticationDefaults.AuthenticationScheme); ???????????HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, ???????????????new ClaimsPrincipal(claimidentity)); ???????????return Ok("Login"); ???????} ???????public IActionResult LogOut() ???????{ ???????????HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme); ???????????return Ok("LogOut"); ???????} ???}}
using Microsoft.AspNetCore.Authentication.Cookies;using Microsoft.AspNetCore.Builder;using Microsoft.AspNetCore.Hosting;using Microsoft.Extensions.Configuration;using Microsoft.Extensions.DependencyInjection;namespace HelloCore2{ ???public class Startup ???{ ???????public Startup(IConfiguration configuration) ???????{ ???????????Configuration = configuration; ???????} ???????public IConfiguration Configuration { get; } ???????// This method gets called by the runtime. Use this method to add services to the container. ???????public void ConfigureServices(IServiceCollection services) ???????{ ???????????//配置1 ???????????services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme) ???????????????.AddCookie(options => ???????????????{ ???????????????????//跳转登录页面 ???????????????????options.LoginPath = "/Account/login"; ???????????????}); ???????????services.AddMvc(); ???????} ???????// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. ???????public void Configure(IApplicationBuilder app, IHostingEnvironment env) ???????{ ???????????if (env.IsDevelopment()) ???????????{ ???????????????app.UseBrowserLink(); ???????????????app.UseDeveloperExceptionPage(); ???????????} ???????????else ???????????{ ???????????????app.UseExceptionHandler("/Home/Error"); ???????????} ???????????app.UseStaticFiles(); ???????????//配置2 ???????????app.UseAuthentication(); ???????????app.UseMvc(routes => ???????????{ ???????????????routes.MapRoute( ???????????????????name: "default", ???????????????????template: "{controller=Home}/{action=Index}/{id?}"); ???????????}); ???????} ???}}
登录成功
ASP.NET Core 2.0 Cookie-based认证实现
原文地址:https://www.cnblogs.com/lgxlsm/p/9106433.html