首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Asp.net web api会话

Asp.net web api会话
EN

Stack Overflow用户
提问于 2014-12-02 16:20:59
回答 3查看 1.4K关注 0票数 4

我不明白web api和会话的概念。

我已经创建了asp.net web api项目,并在it.Every时间内集成了angularjs,我将调用web api。

我读过一些文章,这些文章指出在Web api中使用会话是不好的。我确实理解web api是一种无状态的方法。我同意这一点。仍然有一种使用会话的方法。

第一个问题:如果在登录后,我想在每个页面上显示用户名,我应该如何处理web api方法?

第二个问题:他们说不要在webapi中使用session。那么安全地存储客户信息的另一种方式/方法是什么?

如果我使用HTML5本地存储,它是可编辑的。如果使用cookie,则可以将其删除。

在应用程序处于运行模式之前,我应该为用户做什么以及如何做?

EN

回答 3

Stack Overflow用户

发布于 2015-02-18 18:32:13

这就是语义经常影响讨论的地方。人们将会话对象与无状态混淆。并且经常说:“不要使用会话,因为它不是无状态的!”。

然而,它们真正的意思是你应该努力让你的restful调用是幂等的,这意味着它们不会改变它们的行为,这取决于你在后台做什么。

会话,或者运行时缓存,或者任何你用来缓存数据的东西,都不会对你的无状态设计产生影响,因为说真的,下一步是什么?你的数据库也是statefull吗?你不应该从那里读取数据吗?显然是胡说八道;你的底层存储,无论它是在内存中还是在磁盘上,都不会向客户端反映你的状态。

虽然我觉得@MajoB提出了其他关于不使用session对象的有效观点,但在web api中使用某种类型的缓存、session或其他东西真的没有坏处。但是,如果某些东西在会话中,永远不要让它返回与会话外的东西不同的结果。

票数 2
EN

Stack Overflow用户

发布于 2014-12-02 16:37:01

我建议您避免使用asp.session,因为它可能会导致性能问题和can expire anytime regardless of your application statedoes not scale on cloudit will block concurrent ajax requests)。更好的方法是使用HTML5存储机制,特别是与AngularJs结合使用(您可以使用ng-storage https://github.com/gsklee/ngStorage)。

票数 1
EN

Stack Overflow用户

发布于 2014-12-02 16:47:15

我建议您使用asp.net身份并在服务器上呈现用户信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27244801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档