CookiePolicyOptions还是CookieAuthenticationOptions?

时间:2019-03-19 17:44:59

标签: 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是否配置了默认值,而CookieAuthorizationOptions中的AddCookie覆盖了该特定Cookie的默认值?

此外,如果在Configure中没有添加Cookie中间件,则上一个示例services.Configure<CookiePolicyOptions>中的CookiePolicy配置是否有效? (即app.UseCookiePolicy();

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

1 个答案:

答案 0 :(得分:2)

在.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;
       ...
    });

这部分是从隐私,GDPR(针对欧洲)和其他政策方面制定的Cookie政策。

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

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

很遗憾,这是我所拥有的全部信息。我希望更多的人可以对该主题加深了解。