我有一个WebApplication(C#.Net MVC+IIS(,在那里一切照常工作。然而,我的一位客户要求通过iFrame将我的WebApplication嵌入他的网站。
问题是:每次我尝试登录(提交表格(时,我都会收到这样的消息:"所需的防伪cookie"__RequestVerificationToken";不存在。"。我的视图确实有"__RequestVerificationToken"。
老实说,在iFrame上运行我的web应用程序时出现这种错误是有道理的,但我确实想让这种情况发生,我已经尝试了很多事情,但都没有成功。
我的视图:
@using (Html.BeginForm("Login", "Account", null, FormMethod.Post, new { @data_animation = "true" }))
{
@Html.AntiForgeryToken()
@Html.HiddenFor(i => i.ReturnUrl)
我的控制器
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginViewModel viewModel)
Web.config
<authentication mode="Forms">
<forms name="TesteAbc" loginUrl="~/Account/Login" protection="All" path="/" timeout="180" />
</authentication>
解决方案是在web.config 的httpCookies中设置属性SameSite
<httpCookies sameSite="[Strict|Lax|None|Unspecified]" requireSSL="[true|false]" />
在我的情况下:
sameSite=";无";
requireSL=";真";