ASP.Net身份:UseOAuthBearerTokens和UseCookieAuthentication之间的区别?

本吉FB

ASP.NET团队已经发布了新的示例,展示了如何使用身份包。它们包含在以下nuget包中:Microsoft Asp.Net身份示例

这些示例非常有帮助,但是与所提供的模板中的原始处理方式相比,存在很多变化。

我的具体问题:在原始SPA模板中,有以下代码:

        OAuthOptions = new OAuthAuthorizationServerOptions
        {
            TokenEndpointPath = new PathString("/Token"),
            Provider = new ApplicationOAuthProvider(PublicClientId, UserManagerFactory),
            AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
            AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
            AllowInsecureHttp = true
        };
...
        // Enable the application to use bearer tokens to authenticate users
        app.UseOAuthBearerTokens(OAuthOptions);

但是在nuget包中的新示例中,该代码消失了,而该代码代替了它:

        app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
            LoginPath = new PathString("/Account/Login"),
            Provider = new CookieAuthenticationProvider
            {
                // Enables the application to validate the security stamp when the user logs in.
                // This is a security feature which is used when you change a password or add an external login to your account.  
                OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(validateInterval: TimeSpan.FromMinutes(30), regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
            }
        });

谁能帮助我了解app.UseOAuthBearerTokens和app.UseCookieAuthentication之间的区别(以及进行此更改的原因)?它们似乎都允许应用程序以相同的方式运行,我可以对此更改进行一些说明。

谢谢...

-Ben

戴维编码器

OAuth用于API安全性,在IN API中,您不会使用Cookie,这实际上是无状态的。但是,在说普通的MVC或表单网站时,您将使用普通的会话cookie。除非您要创建API,否则我不会担心OAuth,而只需使用基于传统cookie的身份验证即可。

如果要创建API,则需要这样做,我会说必须进行OAuth验证。然后,您将随请求一起发送令牌,发布,放置,删除。处理程序将此令牌解码为后端,以显示权限,用户ID等

认为最好对此进行扩展并解释问题,以及OAuth为什么解决它。

通常,一个api会位于UI的单独域中,例如APP,网站等。如果您确实设法从API获得cookie(例如facebook.com),则只能在Facebook。但是您的网站将是www.myblog.com。Ajax中有一些设置可以启用通过ajax请求传递cookie,但是域必须相同,这仍然很粗略。

因此Oauth诞生了,本质上是创建了最能描述为基于字符串的cookie,只要您随心所欲地将其存储在请求标头中,就可以按照您的喜好存储该cookie。

您可以在浏览器应用程序中使用javascript创建cookie,并将令牌保存在该cookie中。这将使您能够利用持久性存储。但是,最好使用可用的本地存储。因此,对于基于浏览器的应用程序,这将是LocalStorage API,对于台式机应用程序,您可以使用临时存储,本地数据库等,而电话应用程序将具有类似的功能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ASP.Net身份:UseOAuthBearerTokens和UseCookieAuthentication之间的区别?

来自分类Dev

ASP.NET Web API和WCF之间在身份验证机制方面的区别

来自分类Dev

asp.net和asp.net MVC之间的表单身份验证有区别吗?

来自分类Dev

!IsPostBack和Asp.Net中的刷新之间的区别

来自分类Dev

ASP.Net控件的InnerHTML和InnerText属性之间的区别?

来自分类Dev

ASP.NET WebHooks和Web服务之间的区别?

来自分类Dev

ASP.net中Controller和API Controller之间的区别?

来自分类Dev

ASP.NET中IsPostBack,IsCallback和IsCrossPagePostBack之间的区别

来自分类Dev

ASP.NET4和ASP.NET5 Http管道之间有什么区别?

来自分类Dev

AppHarbor的反向代理导致SSL和app.UseOAuthBearerTokens ASP.NET MVC 5问题

来自分类Dev

AppHarbor的反向代理导致SSL和app.UseOAuthBearerTokens ASP.NET MVC 5问题

来自分类Dev

ASP.NET身份-IUser界面中的UserName和Id有什么区别?

来自分类Dev

ASP.NET身份-IUser界面中的UserName和Id有什么区别?

来自分类Dev

Asp.Net Core 1.0和.Net Core 1.0之间的区别?

来自分类Dev

ASP.net .Net错误页面和IIS错误页面之间有什么区别?

来自分类Dev

Asp.Net Core 1.0和.Net Core 1.0之间的区别?

来自分类Dev

异步和等待-控制台,Windows窗体和ASP.NET之间的区别

来自分类Dev

使用HTML和CSS开发ASP.NET网站和网页设计之间的区别

来自分类Dev

React和ASP.NET后端之间的Windows身份验证

来自分类Dev

asp .net 和 asp .net core 有什么区别?

来自分类Dev

ASP.NET身份和IdentityServer连接

来自分类Dev

Asp.Net身份和cookie名称

来自分类Dev

实体框架和ASP.NET身份

来自分类Dev

asp.net标签文本元素和普通文本之间的区别

来自分类Dev

[ValidateModel]和ASP.NET中的有效状态检查之间有什么区别?

来自分类Dev

ASP.NET MVC选择器和过滤器之间的区别?

来自分类Dev

ASP.NET:page.Session和HttpContext.Current.Session之间的区别

来自分类Dev

Asp.Net中Task.Run和QueueBackgroundWorkItem之间的区别

来自分类Dev

ASP.NET Core中RequireHttps属性和UseHttpsRedirection之间的区别

Related 相关文章

  1. 1

    ASP.Net身份:UseOAuthBearerTokens和UseCookieAuthentication之间的区别?

  2. 2

    ASP.NET Web API和WCF之间在身份验证机制方面的区别

  3. 3

    asp.net和asp.net MVC之间的表单身份验证有区别吗?

  4. 4

    !IsPostBack和Asp.Net中的刷新之间的区别

  5. 5

    ASP.Net控件的InnerHTML和InnerText属性之间的区别?

  6. 6

    ASP.NET WebHooks和Web服务之间的区别?

  7. 7

    ASP.net中Controller和API Controller之间的区别?

  8. 8

    ASP.NET中IsPostBack,IsCallback和IsCrossPagePostBack之间的区别

  9. 9

    ASP.NET4和ASP.NET5 Http管道之间有什么区别?

  10. 10

    AppHarbor的反向代理导致SSL和app.UseOAuthBearerTokens ASP.NET MVC 5问题

  11. 11

    AppHarbor的反向代理导致SSL和app.UseOAuthBearerTokens ASP.NET MVC 5问题

  12. 12

    ASP.NET身份-IUser界面中的UserName和Id有什么区别?

  13. 13

    ASP.NET身份-IUser界面中的UserName和Id有什么区别?

  14. 14

    Asp.Net Core 1.0和.Net Core 1.0之间的区别?

  15. 15

    ASP.net .Net错误页面和IIS错误页面之间有什么区别?

  16. 16

    Asp.Net Core 1.0和.Net Core 1.0之间的区别?

  17. 17

    异步和等待-控制台,Windows窗体和ASP.NET之间的区别

  18. 18

    使用HTML和CSS开发ASP.NET网站和网页设计之间的区别

  19. 19

    React和ASP.NET后端之间的Windows身份验证

  20. 20

    asp .net 和 asp .net core 有什么区别?

  21. 21

    ASP.NET身份和IdentityServer连接

  22. 22

    Asp.Net身份和cookie名称

  23. 23

    实体框架和ASP.NET身份

  24. 24

    asp.net标签文本元素和普通文本之间的区别

  25. 25

    [ValidateModel]和ASP.NET中的有效状态检查之间有什么区别?

  26. 26

    ASP.NET MVC选择器和过滤器之间的区别?

  27. 27

    ASP.NET:page.Session和HttpContext.Current.Session之间的区别

  28. 28

    Asp.Net中Task.Run和QueueBackgroundWorkItem之间的区别

  29. 29

    ASP.NET Core中RequireHttps属性和UseHttpsRedirection之间的区别

热门标签

归档