0

我在/localhost/app有一个父 ASP.NET MVC 2 应用程序(在我的开发机器上的 IIS 中运行)。我可以从/localhost/app/Account/LogOn 登录。我在/localhost/app/childapp有一个子应用程序(MVC 3) 。两个应用程序的 web.config 具有相同的 machineKey(validationKey/decryptionKey),如果我通过父应用程序登录,子应用程序通过父应用程序设置的 cookie 正确验证。

我想要的是能够转到子应用程序的登录页面/localhost/app/childapp/Account/LogOn并将该页面发布到父应用程序的登录帐户控制器。但是,当我尝试此操作时,父应用程序给我一个服务器错误“未提供所需的防伪令牌或无效。” 鉴于我在 cookie 和 post 中都有一个 RequestVerificationToken,它应该是后者(无效,与未提供)。

这只是防伪令牌做的事情,尽管共享身份验证cookie,我不能使用该令牌并跨应用程序发布?或者有没有办法让这个工作?非常感谢!

4

1 回答 1

0

您可以在生成防伪令牌时尝试指定域和路径,这将允许 cookie 自动发送到子应用程序:

@Html.AntiForgeryToken(null, "example.com", "/")

还可以尝试使用 FireBug 检查正在发送的请求,并查看 cookie 是否正在发送到子应用程序以及它是否与隐藏字段具有相同的值。

于 2011-03-22T15:51:15.200 回答