我已经使用Angular 1创建了一个webapi和MVC项目。还创建了一些api。我在项目中也使用过oauth。我在我的api控制器中设置了[自动]。我还在视图文件中添加了RequestVerificationToken。现在我在提交按钮上调用api。我需要在api后传递[Authorize]和[ValidateAntiForgeryToken]。我遇到两个问题
- 提供的ClaimsIdentity中没有类型为“ http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier”或“ http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider”的声明。要通过基于声明的身份验证启用防伪令牌支持,请验证配置的声明提供程序是否在其生成的ClaimsIdentity实例上同时提供了这两个声明。如果配置的声明提供程序改为使用其他声明类型作为唯一标识符,则可以通过设置静态属性AntiForgeryConfig.UniqueClaimTypeIdentifier对其进行配置。'
我在global.aspx.cs文件中添加以下行后已解决此问题。
AntiForgeryConfig.UniqueClaimTypeIdentifier = ClaimTypes.Email;
- 现在我正面临第二个问题。所提供的防伪令牌是针对与当前用户不同的基于声明的用户的。
我不清楚这个问题。
我可以同时使用两个属性吗?