在asp.netcore 2.1中使用cookie身份验证自动重定向而无需身份验证

时间:2018-09-12 11:17:09

标签: authentication cookies asp.net-core-2.1

我一定很想念东西。请注意,我不使用身份。我遵循了this page

的“配置”部分

在我的startup.cs文件中:

// in public void ConfigureServices(IServiceCollection services)
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
    .AddCookie(options =>
    {
        options.LoginPath = new PathString("/account/login/");
        options.AccessDeniedPath = new PathString("/account/forbidden/");
        options.SlidingExpiration = true;
        options.ExpireTimeSpan = TimeSpan.FromHours(336);
    });

// in public void Configure(IApplicationBuilder app, IHostingEnvironment env)
app.UseAuthentication();

然后我有一些以

结尾的登录逻辑
await _httpContextAccessor.HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal, 
                new AuthenticationProperties {IsPersistent = true});

这可以正常工作并创建所需的cookie。

我不了解的是如何对特定端点强制执行身份验证? 以前,我会在终点添加[AllowAnonymous],以表示可以通过身份验证。但是在这里,似乎不知道我是否登录。

1)配置我的应用程序的最佳方法是什么,以便您必须经过身份验证才能访问它们?

2)如何知道用户是否已通过身份验证? (来自控制器)

3)我知道我可以通过中间件来实现所有这些功能,但是我惊讶的是没有内置的方法可以做到这一点。我错了吗?

0 个答案:

没有答案