authentication - CookiePolicyOptions 还是 CookieAuthenticationOptions?

标签 authentication asp.net-core cookies startup asp.net-core-middleware

我刚刚开始思考一些 .NetCore Identity 的问题。但是,有几件事我仍然有点困惑。在一些例子中,我见过这样的事情:

services.AddAuthentication("mycookie")
 .AddCookie("mycookie", options => 
  {
     options.Cookie.HttpOnly = true,
     ...
  });

services.Configure<CookiePolicyOptions>(options => 
{
   options.HttpOnly = true;
   ...
});

CookiePolicyOptions配置默认值和 CookieAuthorizationOptionsAddCookie覆盖该特定 cookie 的默认值?

还有,上一个例子中的CookiePolicy配置有没有services.Configure<CookiePolicyOptions> Configure中没有添加Cookie中间件有什么影响? (即 app.UseCookiePolicy(); )

最后,如果您设置了 Cookie 身份验证方案(如代码片段所示),您是否需要 app.UseCookiePolicy()app.UseAuthentication()中间件?

最佳答案

在 .net 核心中使用 cookie 身份验证本身并不是身份成员系统,而是一个可以用作独立身份验证方式或设置为更广泛身份配置的一部分的组件。

身份 -> 命名空间:Microsoft.AspNetCore.Identity

CookieAuthentication -> Microsoft.AspNetCore.Authentication.Cookies

身份:CookieConfiguration in Identity is an extension config method of the service Collection

CookieAuth:CookiePolicyOptions provides programmatic configuration for the CookiePolicyMiddleware.

 services.Configure<CookiePolicyOptions>(options => 
    {
       options.HttpOnly = true;
       ...
    });

这部分是Cookie政策在隐私、GDPR(欧洲)等方面的政策设置。

另一部分提供了根据您的应用程序的授权策略设置 cookie 的方法:

services.AddAuthentication("mycookie")
 .AddCookie("mycookie", options => 
  {
     options.Cookie.HttpOnly = true,
     ...
  });

不幸的是,这就是我所拥有的全部信息。我希望更多的人可以添加一些更深入的主题理解。

编辑 - 2022 年:

更全面的文章:https://www.reddit.com/r/dotnet/comments/we9qx8/a_comprehensive_overview_of_authentication_in/

关于authentication - CookiePolicyOptions 还是 CookieAuthenticationOptions?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55247071/

相关文章:

javascript - Jquery 记住添加的输入字段

api - 我应该为我的 API 使用哪种身份验证策略?

authentication - 通过API触发Airflow DAG

php - 使用 Curl Php SSL 身份验证的 400 错误请求

c# - 基于角色的授权属性在 ASP.NET Core MVC 中不起作用

docker - 如何为多项目.NET Core WebAPI创建Dockerfile?

c# - 如何从 RestResponse 中保存 cookie 并将它们传递给下一个 RestRequest?

performance - Go - 在用于负载测试的高性能 http 客户端中,如何阻止/忽略所有 cookie?

javascript - 如何隐藏 Angular 管理 View

visual-studio-2015 - .NET Core Web App 不会因异常而中断,并且异常中没有详细信息