ASP.NET WebAPI如何使用IIS存储我的用户身份验证状态?
我有一个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已过期且您的令牌不再有效.
您需要了解HTTP是无状态协议.每个请求都是在真空中发生的,因此您需要将一些数据传递回服务器,以便它可以告诉使用请求A进行身份验证的人确实是请求B的发起者.几乎总是,该数据来自曲奇饼.因此,每个请求确实都会重新进行身份验证,并且通常使用cookie中的令牌. 存储在客户端上的关于会话的唯一数据是cookie(除非你做了非典型的事情).其余的都在服务器上.它的存储方式可能有所不同: Inproc:最容易设置,会话存储在进程中.因此,当您的服务器或应用程序池重新启动时,该数据将消失 状态服务器模式:会话存储在进程中,但在ASP.Net工作进程之外,因此可以重新启动应用程序而不会丢失会话数据 SQL Server:不出所料,它将数据存储在数据库中.非常有弹性,但设置工作量更大.如果您在网络农场,也是您的最佳选择. ref:http://msdn.microsoft.com/en-us/library/vstudio/ms178586(v=vs.100).aspx (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 模型绑定与禁用文本框
- asp.net – Orchard – 从主题布局中获取内容的标题
- 将linkbutton设置为asp.net中asp:panel的默认按钮[复制]
- ASP.net MVC项目结构
- asp.net-mvc – JqGrid隐藏/显示列
- asp.net-mvc – 我什么时候应该在ASP.NET MVC中创建一个新的
- .net – 在黄屏死亡的地方有执行吗?
- asp.net – 防止将父web.config继承到IIS 7.5上的子应用程序
- asp.net-mvc-3 – ASP.NET MVC 3.0 – 为什么在视图中强类型
- asp.net-mvc – 如何使用存储库模式处理表关系?
- .NET Core和Classic ASP在同一解决方案中?
- asp.net-mvc – 使用ASP.NET MVC的BlueImp jQuer
- asp.net – UserControl属性中的默认值
- 如何在IIS上解决接近100%的CPU利用率
- asp.net-mvc-3 – 来自控制器的ASP.NET MVC3 Vie
- 如何创建使用asp:ListItem列表作为子控件的ASP.
- asp.net-mvc-5 – 如何让Glimpse与EF6合作?
- asp.net-mvc – MVC.net获取枚举显示名称而不必参
- asp.net-mvc-4 – NReco.PdfGenerator服务器上的
- 使用ASP.NET重定向到非www-url域?