在ASP.NET Core
方法中Configure
启动时,您可以使用UseIdentity
中的ASP.NET Core Identity
或UseCookieAuthentication
来UseIdentity
进行UseCookieAuthentication
。它们都提供基于cookie的身份验证。
我想知道它们的区别。 {{1}}在内部使用{{1}}吗?一个是另一个的优点和缺点是什么?
感谢您的解释。
答案 0 :(得分:6)
Cookie身份验证中间件:
ASP.NET Core提供cookie中间件,将用户主体序列化为加密cookie,然后在后续请求中验证cookie,重新创建主体并将其分配给HttpContext上的User属性。如果您想提供自己的登录屏幕和用户数据库,可以将cookie中间件用作独立功能。
身份:
ASP.NET Core Identity是一个会员系统,允许您向应用程序添加登录功能。用户可以使用用户名和密码创建帐户并登录,也可以使用Facebook,Google,Microsoft帐户,Twitter等外部登录提供商。
简而言之,Identity仅基于本地身份验证,并提供执行外部身份验证的功能,以及用于配置用户帐户的解决方案。
各自的利弊因您的业务而异,并且两者都有自己的位置,我发现通常根据具体情况确定。
可以在github页面here上找到Identity的内部工作原理。
答案 1 :(得分:3)
UseIdentity是否在内部使用UseCookieAuthentication?
但是,Auth 2.0中不推荐使用UseIdentity和UseCookieAuthentication。
services.AddCookieAuthentication()
和app.UseAuthentication()
将被改为使用。
重要说明:如果您有UseIdentity,请不要使用UseCookieAuthentication。我把它们混合在一个项目里。基于声明的授权将用户重定向到LoginPage而不是AccessDenied页面。