加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET WebAPI如何使用IIS存储我的用户身份验证状态?

发布时间:2020-12-16 07:37:53 所属栏目:asp.Net 来源:网络整理
导读:我有一个asp.net Web Api 2 / Identity 2应用程序,需要用户进行身份验证.验证工作,但我注意到,当我重新启动本地开发机器并尝试访问需要验证的方法时,我得到了失败. 由于我的应用程序与asp.net示例相同,因此我认为它使用cookie在客户端上存储用户数据.服务器
我有一个asp.net Web Api 2 / Identity 2应用程序,需要用户进行身份验证.验证工作,但我注意到,当我重新启动本地开发机器并尝试访问需要验证的方法时,我得到了失败.

由于我的应用程序与asp.net示例相同,因此我认为它使用cookie在客户端上存储用户数据.服务器或IIS如何以及如何存储有关哪些用户已通过身份验证的信息?它是仅仅执行一次还是每次HTTP?我在服务器上检查身份验证和授权的方式使用令牌或cookie身份验证之间有区别吗?

解决方法

我认为您误解了身份验证如何与ASP.Net一起使用.举个例子,让我向你展示一些使用Identity的网站的cookie细节(注意令牌实际上在cookie中,这两个不是互斥的概念):

Name    __RequestVerificationToken
Value   afeILhaIvRr56jXXXXXXXXXXX
Host    site.azurewebsites.net
Path    /
Expires At end of session

请注意,默认情况下,Cookie会在会话结束时到期.这意味着当您重新启动开发计算机时,您的cookie已过期且您的令牌不再有效.

In particular I have read that with token authentication then there is no need for continual re-authentication every time a request is made to the server

您需要了解HTTP是无状态协议.每个请求都是在真空中发生的,因此您需要将一些数据传递回服务器,以便它可以告诉使用请求A进行身份验证的人确实是请求B的发起者.几乎总是,该数据来自曲奇饼.因此,每个请求确实都会重新进行身份验证,并且通常使用cookie中的令牌.

存储在客户端上的关于会话的唯一数据是cookie(除非你做了非典型的事情).其余的都在服务器上.它的存储方式可能有所不同:

Inproc:最容易设置,会话存储在进程中.因此,当您的服务器或应用程序池重新启动时,该数据将消失

状态服务器模式:会话存储在进程中,但在ASP.Net工作进程之外,因此可以重新启动应用程序而不会丢失会话数据

SQL Server:不出所料,它将数据存储在数据库中.非常有弹性,但设置工作量更大.如果您在网络农场,也是您的最佳选择.

ref:http://msdn.microsoft.com/en-us/library/vstudio/ms178586(v=vs.100).aspx

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读