2014-09-02 62 views
0

首先,我不熟悉Web开发,所以我可能会在这里缺少一些基本的东西。如果确实如此,请原谅我。ASP.NET WebSecurity对象在项目之间共享?

我目前正在研究一个基于另一个web应用程序的web应用程序(不是由我创建的)。 这两个应用程序共享相似的用户登录代码,但用户帐户信息存储在不同的数据库中。

但是,登录到应用程序1之后,WebSecurity.IsAuthenticated标志在其他应用程序(检测为已登录)上也是如此。预期这种行为?

如果该信息没有任何用处的..

  • 1应用程序的使用ASP.NET开发服务器而其他用途ISS表示
+0

我猜你的web.config有两个应用的validationKey和decryptionkey等相同的设置,在这里阅读更多的http:/ /msdn.microsoft.com/en-us/library/eb0zx8fc(v=vs.100).aspx – Esko 2014-09-02 04:51:11

+0

@Esa谢谢!它似乎与你所提到的有关。这两个项目都没有在Web.config中定义machinekey。所以我继续前进,并放入一个不同的手动生成的密钥。但现在他们似乎在互相“劫持”对方。登录到这两个网页时,我收到“反伪造令牌无法解密......”。 – xytec 2014-09-02 07:46:11

回答

0

这不完全是我最初的问题的答案。
在上面的注释中已被@Esa回答 - >将机器密钥设置为Web.Config。

以下是我在评论中提到的问题的答案。
(我是不是应该在评论发表在这个呢?)

这两个应用程序都覆盖相同__RequestVerificationToken cookie,它导致错误“的防伪标记无法解密......”航行时。

这是因为这两个应用程序都位于“localhost:xxxxx”的相同路径中,因此被检测为同一站点。通过更改任一应用程序的虚拟路径可以避免该错误。

  • 为VS,项目属性 - >网站(选项卡) - >虚拟路径