UseCookieAuthentication和UseIdentity之间的区别?

时间:2017-01-25 07:38:20

标签: authentication asp.net-core asp.net-identity

ASP.NET Core方法中Configure启动时,您可以使用UseIdentity中的ASP.NET Core IdentityUseCookieAuthenticationUseIdentity进行UseCookieAuthentication。它们都提供基于cookie的身份验证。

我想知道它们的区别。 {{1}}在内部使用{{1}}吗?一个是另一个的优点和缺点是什么?

感谢您的解释。

2 个答案:

答案 0 :(得分:6)

从可以找到的文档herehere

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?

Yes.

但是,Auth 2.0中不推荐使用UseIdentity和UseCookieAuthentication。

UseIdentity

UseCookieAuthentication

services.AddCookieAuthentication()app.UseAuthentication()将被改为使用。

重要说明:如果您有UseIdentity,请不要使用UseCookieAuthentication。我把它们混合在一个项目里。基于声明的授权将用户重定向到LoginPage而不是AccessDenied页面。