【发布时间】:2015-07-22 06:28:31
【问题描述】:
我正在一个 ASP.NET MVC 5 应用程序中工作,我需要两个级别的安全性。 用户登录系统,然后,他们可以选择“登录”到第二个子系统(假设是公司分支机构),从公司分支机构列表中选择一个公司分支机构。这种情况类似于拥有一个包含一些存储库的 GitHub 帐户。首先,您登录 GitHub,然后选择要使用的存储库。 我不想将分支 id/name 作为 url 参数传递,我想创建一个 cookie 来存储分支基本数据,例如 id 和 name。 我正在使用公司分支数据创建一个 cookie(使用 HttpCookie)。我的问题是创建(和加密)第二个 cookie 以识别所选公司分支机构的最佳方法是什么?
【问题讨论】:
-
在 GitHub 上,您不会“登录”到存储库。您只需选择它,然后您就会被带到正确的 URL 以查看该页面。你为什么不这样配置你的路由呢?我会为此避免使用cookie。这使得共享指向一致页面的链接变得困难。
-
我参考了 GitHub 作为例子。我不想为每个请求查询我的数据库以获取公司分支机构名称和其他基本公司分支机构数据(来自公司分支机构 ID/名称等路由参数)。公司分支机构数据用于实现授权,因此我更喜欢在“缓存”中(到目前为止在 cookie 中)有一些公司分支机构数据来查询我的数据库以获取它。
-
这没有意义。用户可以轻松地操纵 cookie。无论如何,您的服务器都必须确定请求的授权。一个小的身份验证检查数据库查询应该非常简单和快速。如果不是,那么您可以将结果缓存在服务器内存中。
标签: c# asp.net asp.net-mvc cookies forms-authentication