温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ASP.NET Core 2.0中CookieAuthentication如何使用

发布时间:2021-07-15 14:28:23 阅读:162 作者:Leah 栏目:大数据
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

这篇文章将为大家详细讲解有关ASP.NET Core 2.0中CookieAuthentication如何使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

在ASP.NET Core 2.0中使用CookieAuthentication跟在1.0中有些不同,需要在ConfigureServices和Configure中分别设置,前者我们叫注册服务,后者我们叫注册中间件

public void ConfigureServices(IServiceCollection services){    services.AddCookieAuthentication();    services.AddMvc(options =>    {        var policy = new AuthorizationPolicyBuilder()            .RequireAuthenticatedUser()            .Build();     // 因为是后台系统,必须登陆以后才能操作        options.Filters.Add(new AuthorizeFilter(policy));    });}
public void Configure(IApplicationBuilder app, IHostingEnvironment env){    if (env.IsDevelopment())    {        app.UseDeveloperExceptionPage();    }    else    {        app.UseExceptionHandler("/Home/Error");    }    app.UseStaticFiles();  // 使用Authentication中间件    app.UseAuthentication();    app.UseMvc(routes =>    {        routes.MapRoute(            name: "default",            template: "{controller=Home}/{action=Index}/{id?}");    });}

在上面的services.AddCookieAuthentication中没有任何参数,系统会为某些属性指定默认值

public static class CookieAuthenticationDefaults{    /// <summary>    /// The default value used for CookieAuthenticationOptions.AuthenticationScheme    /// </summary>    public const string AuthenticationScheme = "Cookies";    /// <summary>    /// The prefix used to provide a default CookieAuthenticationOptions.CookieName    /// </summary>    public static readonly string CookiePrefix = ".AspNetCore.";    /// <summary>    /// The default value used by CookieAuthenticationMiddleware for the    /// CookieAuthenticationOptions.LoginPath    /// </summary>    public static readonly PathString LoginPath = new PathString("/Account/Login");    /// <summary>    /// The default value used by CookieAuthenticationMiddleware for the    /// CookieAuthenticationOptions.LogoutPath    /// </summary>    public static readonly PathString LogoutPath = new PathString("/Account/Logout");    /// <summary>    /// The default value used by CookieAuthenticationMiddleware for the    /// CookieAuthenticationOptions.AccessDeniedPath    /// </summary>    public static readonly PathString AccessDeniedPath = new PathString("/Account/AccessDenied");    /// <summary>    /// The default value of the CookieAuthenticationOptions.ReturnUrlParameter    /// </summary>    public static readonly string ReturnUrlParameter = "ReturnUrl";}

根据微软的命名规范在ConfigureServices统一使用Add***,在Configure统一使用Use***

登陆代码

public async Task<IActionResult> LoginDo(){  var user = new ClaimsPrincipal(new ClaimsIdentity(new[] { new Claim(ClaimTypes.Name, "bob") }, CookieAuthenticationDefaults.AuthenticationScheme));  await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, user, new AuthenticationProperties  {    IsPersistent = true,    ExpiresUtc = DateTimeOffset.Now.Add(TimeSpan.FromDays(180))  });  return Redirect("/");}

登出代码

public async Task<IActionResult> Logout(){    await HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme);    return Redirect("/");}

关于ASP.NET Core 2.0中CookieAuthentication如何使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

原文链接:https://my.oschina.net/u/3772973/blog/4615481

AI

开发者交流群×