1

我同时在几个 asp.net 网站上工作。它们都使用基于 cookie(开箱即用)的身份验证机制。当 localhost:4587 上的网站在 VS 中被隐藏时,我以“管理员”用户身份登录并进行了一些测试。

第二天,我将打开在 localhost 上运行的不同项目进行调试。当我尝试访问标有授权属性的 MVC 控制器操作时,系统假定当前用户是“管理员”,并且正在根据自定义提供程序寻找它的角色。但是在这个站点上,甚至没有一个名为“admin”的用户。如何确保来自其他站点的 cookie 不会在 ASP.NET MVC 应用程序中进行角色检查?

4

2 回答 2

1

在每个应用程序中为您的表单标签指定一个唯一的名称

<authentication mode="Forms">
  <forms name="myVeryUniqueNameForApp1" />
</authentication>

<authentication mode="Forms">
  <forms name="myCompletelyUniqueNameForApp2" />
</authentication>
于 2013-11-26T00:52:24.917 回答
1

我建议在测试后删除所有 localhost cookie 始终是一个好习惯。正如这里所解释的:asp.net cookie、身份验证和会话超时,您还可以向身份验证 cookie 添加详细信息,以确保它在会话后被丢弃,即当您关闭浏览器或区分两个站点时。另一种避免 cookie “冲突”的方法是使用两种不同的浏览器:一种是 Chrome,另一种是 Comodo Dragon 或 Chromium。

于 2012-11-22T10:23:37.120 回答