当前位置: 首页 > 知识库问答 >
问题:

@Html。antiforgerytoken()在VS 2013中工作正常,但在VS 2012中抛出错误

唐昊焜
2023-03-14

我们正试图在MVC4控制器中的一种操作方法中防止跨站点请求伪造攻击。下面是我们所做的代码更改,它在VS 2013中运行良好,但在VS 2012中抛出错误,与我们在Windows Server 2012-IIS 8中部署时遇到的错误相同。

View.cshtml

 @using(Html.Beginform())
  {@Html.antiforgerytoken()} 

Controller.cs

[ValidateAntiforgeryToken]
public ActionResult actionmethod1()
{
  <some code here>
}  

VS2013-以上代码运行良好

VS2012-引发以下错误

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier或http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider类型的索赔在提供的索赔身份中不存在。若要通过基于声明的身份验证启用反伪造令牌支持,请验证配置的声明提供程序是否在其生成的ClaimsId相实例上提供了这两种声明。如果配置的声明提供程序使用不同的声明类型作为唯一标识符,则可以通过设置静态属性AntiForgeryConfig来配置它。UniqueClaimType标识符。

当使用VS2013发布的代码部署在Windows Server 2012 IIS8中时,我们会遇到上面提到的相同错误

1.VS2013的区别是什么使其工作,这在VS2012中不工作?2.我们应该在IIS中做什么改变来使代码像在VS2013中一样工作?

共有1个答案

陈高寒
2023-03-14

应用程序\u启动方法中添加此行:

AntiForgeryConfig.UniqueClaimTypeIdentifier = ClaimTypes.NameIdentifier;

更多信息。

 类似资料:
  • 去年我在做一个项目,导出和导入都很好,但最近我决定导入我的sql文件,由于每个表中都有很多错误,我无法导入。 一旦我停止工作,我就删除了xampp,现在决定再次下载它,但我被困在导入上,这是我的完整文件: http://pastebin.com/mddVUU1i 我的错误如下: 创建表(int(11)Not NULL, varchar(50)Not NULL,datetime Not NULL D

  • 我有一个对soap Web服务的请求,该服务在SoapUi中运行良好。我想在python脚本中调用此Web服务。 我尝试了一些模块:zeep,泡沫,...但是我总是有一个SSL错误。 以下是信息: https://37.71XXXXXXACONYX?wsdl 基本认证:用户名密码 身份验证类型:抢占式 我在SoapUi中提供了xml。 有人有什么想法吗? 谢谢!! 我试过:

  • 我正在使用以下命名查询: 该查询在mysql中运行良好: 但当我试图运行我的代码时,我得到了QuerySyntaxException:

  • 在Apache J Meter中用1个线程触发请求时,我得到以下错误-org.Apache.http.nohttpresponseException:xxx.tc.at.xxx.net:8443未能在org.Apache.http.impl.conn.defaultthtpresponseparser.parsehead(Defaultthtpresponseparser.java:141)在or

  • 基巴娜: 获取my_index/topiccollection/_search{“size”:200,“sort”:[{“updated_on”:{“order”:“desc”}}],“query”:{“bool”:{“show”:[{“wildcard”:{“team_name”:{“value”:“melp”}}}],“filter”:{“term”:{“topictype”:“0”}},“m

  • 我有一个简单的RestController应用程序- 它在SpringBoot(http://localhost:8080/greeting)上工作得很好,但是当我创建一个WAR并将其部署到Tomcat(9.0.2)上时,它会抛出一个404。