asp.net webapi 的一些疑问

ZXY900213 2015-10-21 10:47:32
最近在学习web api ,有一些疑问请各位大侠指点。
比如我现在做一个简单的注册。现在手机注册相信大家都有用过,一般需要验证手机,也就是服务器发送一个随机的验证码发送到你填写的手机号,然后用户注册的时候填写这个验证码,随注册信息一起提交。
用普通的asp.net 大家都知道,把生成的随机码保存到Session里面,然后用户提交注册信息时直接从Session里面取出来比较是否一致,但是web api他是RESTful风格,是无状态的。。也就是说不能保存到Session里面。使用Web api该怎么做?
其实说了这么多废话,用一句话概括就是:怎么把同一个用户分别发送的两次请求关联起来?
...全文
369 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
e251396 2015-10-23
  • 打赏
  • 举报
回复
你妹的,竟然不存数据库,存数据库有个好处就是可以查询到哪些手机号过来注册了,同时还可以通过时间来过滤频繁请求验证码,至少有个日志,方便日后查询。
masanaka 2015-10-22
  • 打赏
  • 举报
回复
存在数据库里,把PK值放在Response.Header里返回,然后提交验证码的时候把这个PK值一起带上。 不知道这想法行不行,要试试看。
ajianchina 2015-10-22
  • 打赏
  • 举报
回复
你用手机应用只要花一半积分,呵呵。
ajianchina 2015-10-22
  • 打赏
  • 举报
回复
就用token完成你的这些所有流程 我给你推荐的那篇文章是采用OAuth方式来进行授权,没有推荐给你HTTP Basic的授权方式,后者已经逐步淘汰了。 所以你要了解OAuth方式授权流程: 1. 获取未授权的request token 2. 请求用户对request token授权 3. 使用授权request token换取access token 所以你结合你的应用将发送验证的用户token放在上面的第一步。 你如果对session念念不忘,那就在global中打开session就是了,重写一下Init()方法,一行代码而已,session跟缓存有什么区别呢,既然用了token机制,并且按OAuth的协议来写,那就可以完全在整个token认证的流程中全部解决。
ZXY900213 2015-10-22
  • 打赏
  • 举报
回复
移动客户端回帖所得专家分翻倍,下载体验! 好吧我错了,,好久没来CSDN了。。多谢版主大大的指点。。。
ZXY900213 2015-10-22
  • 打赏
  • 举报
回复
引用 9 楼 starfd 的回复:
最后,注册都没注册,也就是用户账号都没有,何来token的生成基础


多谢版主大人指点!!!确实是这样的!!我已经结贴了。。另外我发现CSDN的一个bug..


1楼180分,2楼10分,一起190分,我这个贴的总分100分,还有90分哪里来的??
  • 打赏
  • 举报
回复
最后,注册都没注册,也就是用户账号都没有,何来token的生成基础
  • 打赏
  • 举报
回复
再补充下,不存数据库,存cache里面也是可以的
  • 打赏
  • 举报
回复
你不是有手机号码的吗?这不就是用来对应的东西么? 如果你担心用户点击发送后,又没事修改了手机号码,那你可以在发送的同时埋点某个地方存下这个手机号码,比如通过$().data,反正手机注册时,打开页面后就不能关闭,否则就会算下一次,当然手机号码一致的话可以算一次,另外不知道你的手机号码有没有存数据库,一般来说这个东西是必须要存的,包括注册后要去将这条记录作废
ZXY900213 2015-10-22
  • 打赏
  • 举报
回复
引用 5 楼 ajianchina 的回复:
[quote=引用 3 楼 ZXY900213的回复:][quote=引用 1 楼 ajianchina 的回复:] web api token 你去一找就明白了,我就不废话了。
其实我也知道用token,但是不知道怎么生成,我搜了好多资料,感觉说的都比较模糊,有什么好的文章推荐么?[/quote] 较详细的介绍 http://liulixiang1988.github.io/shi-yong-aspnet-web-api-2-owinhe-identitylai-chuang-jian-tokenren-zheng-1.html[/quote] 我之前看得一些文章,一直找不到他们说的一些类,我用的VS2012,在新建项目选择模板时没有“更改身份验证”按钮,原来是我的VS版本太低? 多谢啦!!!
ajianchina 2015-10-22
  • 打赏
  • 举报
回复
引用 3 楼 ZXY900213的回复:
[quote=引用 1 楼 ajianchina 的回复:] web api token 你去一找就明白了,我就不废话了。
其实我也知道用token,但是不知道怎么生成,我搜了好多资料,感觉说的都比较模糊,有什么好的文章推荐么?[/quote] 较详细的介绍 http://liulixiang1988.github.io/shi-yong-aspnet-web-api-2-owinhe-identitylai-chuang-jian-tokenren-zheng-1.html
ZXY900213 2015-10-22
  • 打赏
  • 举报
回复
引用 1 楼 ajianchina 的回复:
web api token 你去一找就明白了,我就不废话了。
其实我也知道用token,但是不知道怎么生成,我搜了好多资料,感觉说的都比较模糊,有什么好的文章推荐么?
ZXY900213 2015-10-22
  • 打赏
  • 举报
回复
引用 2 楼 masanaka 的回复:
存在数据库里,把PK值放在Response.Header里返回,然后提交验证码的时候把这个PK值一起带上。 不知道这想法行不行,要试试看。
bad idea
ZXY900213 2015-10-22
  • 打赏
  • 举报
回复
好长时间没来CSDN了,以前只要一结贴,就再也没人回答了。。现在感觉这里比充满了正能量!!
ZXY900213 2015-10-22
  • 打赏
  • 举报
回复
引用 17 楼 starfd 的回复:
保存是有意义的,因为你发短消息是要钱的,如果不持久化,那么别人就可以通过工具频繁的申请注册发短消息,妥妥的让你每天花N多钱,持久化后你就可以利用发送过的记录判断哪些手机、以及哪些客户端IP组合后存在恶意攻击问题
这个我还真没想到!!受教啦!!
  • 打赏
  • 举报
回复
保存是有意义的,因为你发短消息是要钱的,如果不持久化,那么别人就可以通过工具频繁的申请注册发短消息,妥妥的让你每天花N多钱,持久化后你就可以利用发送过的记录判断哪些手机、以及哪些客户端IP组合后存在恶意攻击问题
ZXY900213 2015-10-22
  • 打赏
  • 举报
回复
引用 15 楼 starfd 的回复:
cache可以有几种timeout可以设置,但不靠谱的地方在于,除了到期释放外,还可能因为内存占用达到阀值,会释放优先级较低的缓存数据,所以相对来说最靠谱的还是数据库
我还是觉得放到缓存好一点,因为这验证码在1分钟后需要失效的。如果放到数据库的话,删除比较麻烦。手机号在没有注册成功之前是不保存的,感觉没什么意义。
  • 打赏
  • 举报
回复
cache可以有几种timeout可以设置,但不靠谱的地方在于,除了到期释放外,还可能因为内存占用达到阀值,会释放优先级较低的缓存数据,所以相对来说最靠谱的还是数据库
masanaka 2015-10-22
  • 打赏
  • 举报
回复
引用 8 楼 starfd 的回复:
再补充下,不存数据库,存cache里面也是可以的
嗯,谢谢指点。保存手机号码到cache是个不错的方法。 不过关于cache,如果考虑大量并发的时候,是不是会有影响? 因为毕竟从生成验证码用户提交验证码,这之间会有一段控制不了的时间差。 cache应该是比Session更轻量级的东西,我觉得。
ajianchina 2015-10-21
  • 打赏
  • 举报
回复
web api token 你去一找就明白了,我就不废话了。

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧