我收到了以下错误:
{"在提供的ClaimsIdentity中未提供类型为 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier' 或 'http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider' 的声明。要使用基于声明的身份验证启用防伪令牌支持,请验证已配置的声明提供程序是否在生成的ClaimsIdentity实例上提供了这两个声明。如果已配置的声明提供程序使用不同的声明类型作为唯一标识符,可以通过设置静态属性AntiForgeryConfig.UniqueClaimTypeIdentifier来进行配置。}
我尝试过Anti-forgery token issue (MVC 5),但没有成功。
错误发生在:
任何想法都非常受欢迎。
{"在提供的ClaimsIdentity中未提供类型为 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier' 或 'http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider' 的声明。要使用基于声明的身份验证启用防伪令牌支持,请验证已配置的声明提供程序是否在生成的ClaimsIdentity实例上提供了这两个声明。如果已配置的声明提供程序使用不同的声明类型作为唯一标识符,可以通过设置静态属性AntiForgeryConfig.UniqueClaimTypeIdentifier来进行配置。}
我尝试过Anti-forgery token issue (MVC 5),但没有成功。
错误发生在:
@Html.AntiForgeryToken()
通用的Startup.cs文件
public class Startup
{
public void Configuration(IAppBuilder app)
{
AuthConfig.ConfigureAuth(app);
}
}
管理员控制器登录方法
[HttpPost]
public ActionResult Login(Models.AdminUserLogin LoginModel)
{
if (ModelState.IsValid)
{
if (isUserValid(LoginModel.EmailAddr, LoginModel.Password))
{
List<Claim> claims = new List<Claim>
{
new Claim(ClaimTypes.Email, LoginModel.EmailAddr),
//some other claims
};
ClaimsIdentity identity = new ClaimsIdentity(claims, AuthConfig.DefaultAuthType);
IAuthenticationManager authManager = Request.GetOwinContext().Authentication;
authManager.SignIn(new AuthenticationProperties() { IsPersistent = true }, identity);
return RedirectToAction("Manage");
}
else
{
ModelState.AddModelError("", "Username and/or password incorrect");
}
}
return View(LoginModel);
}
任何想法都非常受欢迎。