【问题标题】:What to use instead of session and cookie in mvc application在 mvc 应用程序中使用什么来代替 session 和 cookie
【发布时间】:2017-03-22 08:48:16
【问题描述】:

目前在我们的网站上,我们正在使用 1.) Session 2.) Cookie; , 他们都有自己的缺点。因此,在我们的新网站中,我们不想使用会话和 cookie。

我们已经用谷歌搜索并找到了一些会话和 cookie 的替代方式,如下所示:

1.) 使用“本地存储”或“会话存储”。

2.) 使用查询字符串附加数据。

本地存储是会话的客户端替代方案。它只能用于客户端脚本,而不是服务器代码,如果您正在编写 SPA 并计划进行 Ajax 调用,您将使用它。

因此,我们需要另一种技术方法来使用其他方法来处理会话和 cookie。

请帮帮我。

【问题讨论】:

  • 这真的取决于你使用它们的目的。
  • 你在 session 和 cookie 中存储了什么?
  • 你的新网站是 ASP.Net Web Form、ASP.Net MVC 还是 ASP.Net Web API?
  • @Win - 它是 ASP.Net MVC

标签: asp.net session cookies


【解决方案1】:

使用“本地存储”或“会话存储”。

本地存储不能替代会话状态。它们是完全不同的技术。

使用查询字符串附加数据。

QueryString 也不是会话状态的替代品。我们只使用查询字符串在页面之间传递非常小的数据(通常是整数值)

所以,我们需要一种替代的技术方法来处理会话和 cookie 用其他方法。

Cookie

对于 ASP.Net MVC,您想使用 Cookie 进行身份验证 除非您想使用 Bearer Token。使用 Cookie 进行身份验证没有任何问题,除非您滥用它。

会话状态

简而言之,我们不需要在 ASP.Net MVC 中直接使用会话状态。您可以说 Session StateView State 在某种程度上被 Model 取代。

请记住,TempData 在后台使用会话状态。

【讨论】:

    【解决方案2】:

    我已经用谷歌搜索了一些资源并试图找出更多,如果有人有建议请更新。

    不使用Session和Cookie的页面间传递数据的2种方式:

    1.) 使用本地存储

    2.) 使用安全查询字符串:

    ================================================ =====

    1.) 使用本地存储:

    a.) 本地存储或会话存储:

    What is the difference between localStorage, sessionStorage, session and cookies?

    b.) HTML5 离线存储 - Session 的替代方案? [关闭]

    HTML5 offline storage - Alternative to Session?

    缺点: Are there any drawbacks to using localStorage instead of Cookies?

    2.) 使用安全查询字符串:

    a.) MVC 加密查询字符串: Encrypting an id in an URL in ASP.NET MVC

    b.) 在网站之间安全地传递身份令牌 http://dotnetslackers.com/articles/aspnet/Securely-Passing-Identity-Tokens-Between-Websites.aspx#1776

    c.) 在 MVC 4 中加密和解密 URL

    https://dotnettrace.net/2013/09/19/encrypt-and-decrypt-url-in-mvc-4/

    【讨论】:

      猜你喜欢
      • 2019-08-14
      • 2012-04-28
      • 2010-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-22
      • 2017-11-18
      相关资源
      最近更新 更多