【问题标题】:How to maintain state between ASP.NET MVC4 Applications in Same Domain?如何维护同一域中 ASP.NET MVC4 应用程序之间的状态?
【发布时间】:2014-02-27 18:07:47
【问题描述】:

我是 MVC 新手,我的任务是维护同一域中的应用程序之间的状态 - cookie 将是一个选项,除了 cookie 存储之外还有其他选项吗?

【问题讨论】:

  • 您采用的方法取决于您要共享的数据量和数据类型 - 简单值或复杂类型。
  • 与用户相关的数据 - 以便用户可以使用相同的凭据登录其他应用程序。

标签: c# asp.net asp.net-mvc asp.net-mvc-4 cookies


【解决方案1】:

您可以通过在 web.config 中设置域名来做到这一点

<httpCookies domain=".domain.com"/> 

【讨论】:

  • 您好,yousuf,您的意思是只要在配置文件中使用这个 httpcookie 条目就足以维持状态。我的一种情况是,我在 app1 的会话中拥有我的登录详细信息,并且我可以通过另一个 App2 中的 cookie 会话访问相同的登录详细信息,但是当我尝试注销 App1 时,App2 仍然可以访问登录凭据。我正在寻找除 cookie 之外的其他选项。
【解决方案2】:

有几个

1) 运行状态服务器

2) 使用sql server存储状态 a) 在 web.config 中执行此操作

3) 使用某种数据库服务器 (mssql/nosql/oracle/...) a) 将 guid 保存到 cookie,然后将您需要的重要状态数据保存到 sql server

【讨论】:

  • 这里是这种情况,由于一些基础设施问题,我们没有选择使用任何数据库服务器进行存储 - 仅 inproc 模式
  • 如果您只想在域内的多个站点之间对用户进行身份验证,则需要将身份验证数据保存在某个地方。既然站点必须使用数据库,为什么不将数据保存到表中的数据库中。例如。有一个登录表,其中存储了您对用户进行身份验证的 guid 以及该 guid 的到期时间以及他们拥有的权限。如果您告诉/只需要使用 cookie,那么您将需要加密某种密码短语,说明它们在时间 x 内已被验证。并在他们每次提出请求时解密。使用数据库更安全更简单
猜你喜欢
  • 1970-01-01
  • 2010-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-13
相关资源
最近更新 更多