在ASP.NET Core
Configure
方法中启动时,当您配置pipleline时,您可以使用ASP.NET Core Identity
中的UseIdentity
,也可以使用UseCookieAuthentication
。它们都提供基于 cookie 的身份验证。
我想知道它们有什么区别。UseIdentity
是否在内部使用UseCookieAuthentication
?一个相对于另一个的优点和缺点是什么?
感谢您的解释。
来自可以在这里和这里找到的文档。
Cookie 身份验证中间件:
ASP.NET Core 提供 cookie 中间件,该中间件将用户主体序列化为加密的 cookie,然后在后续请求中验证 cookie,重新创建主体并将其分配给 HttpContext 上的 User 属性。如果您想提供自己的登录屏幕和用户数据库,您可以将 cookie 中间件用作独立功能。
身份:
ASP.NET 核心标识是一个成员系统,允许您向应用程序添加登录功能。用户可以创建一个帐户并使用用户名和密码登录,也可以使用外部登录提供商,如Facebook,Google,Microsoft帐户,Twitter等。
简而言之,Identity 仅基于本地身份验证构建,并提供执行外部身份验证的功能以及用于预配用户帐户的内置解决方案。
每种方法的优缺点因您的业务而异,并且两者都有自己的位置,我发现通常是根据具体情况确定的。
Identity 的内部工作原理可以在 github 页面上找到。
UseIdentity 是否在内部使用 UseCookieAuthentication?
是的。
但是,UseIdentity 和 UseCookieAuthentication 都将在 Auth 2.0 中弃用。
使用身份
使用饼干身份验证
将改用services.AddCookieAuthentication()
和app.UseAuthentication()
。
重要提示:如果您有 UseIdentity,请不要使用 UseCookieAuthentication。我将它们混合在一个项目中。基于声明的授权将用户重定向到登录页面而不是访问拒绝页面。