问题描述
全部!
我想知道以下情况是否可行
- 我想从asp.net 4.7向asp.net core 3.1发出发布请求。
- asp.net 4.7和core都存在于同一IIS网站上。
- asp.net 4.7存在于网站根目录中。 (http:// localhost)
- asp.net核心作为站点(http:// localhost / sub1)的应用程序存在
- asp.net 4.7和启用核心的CSRF(防伪)。
由于Asp.net 4.7的CSRF依赖于Machine Key,因此我跟随本文更改了asp.net 4.7应用程序。 https://docs.microsoft.com/ko-kr/aspnet/core/security/data-protection/compatibility/replacing-machinekey?view=aspnetcore-3.1
asp.net核心和4.7应用程序都在同一目录中存储密钥。
services.AddDataProtection()
.SetApplicationName("testapp")
.PersistKeysToFileSystem(new DirectoryInfo(@"C:\Temp\keys"));
这是asp.net 4.7页面,该页面向asp.net核心应用发出发布请求。
@using (@Html.BeginForm(null,null,FormMethod.Post,new { @action = "http://contoso/sub/mypage" }
))
{
@Html.AntiForgeryToken()
<input type="submit" value="Submit" />
}
我认为它会起作用,但是当我从asp.net 4.7拨打电话时, 我从asp.net核心收到400错误。我发现的一件事是,直接从asp.net核心调用页面并从asp.net 4.7页面发送发布消息时,RequestVerificationToken值不同。 那么这可能吗? 谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)