假设: 一个新的空ASP.NET 5 beta8项目。我添加了一些有效的控制器和基本视图。
这样的控制器:
public class AccountController : Microsoft.AspNet.Mvc.Controller
{
[HttpPost]
public async Task<ActionResult> Login(LoginViewModel vm)
{
if (ModelState.IsValid)
{
var result = await signInManager.PasswordSignInAsync(vm.UserName, vm.Password, vm.RememberMe, false);
if (result.Succeeded)
{
return RedirectToAction("Index", "Home");
}
}
return View();
}
}
问题:
当我尝试调用此服务时,我会收到带有BadRequest的错误页面
我在未调用的第一行代码(ModelState.IsValid
)上进行了分析。
我错过了什么吗?
答案 0 :(得分:0)
我找到了原因并且我发布它作为对我自己的问题的回答并不是很明显,因为我认为这可以节省很多时间。
<强>在-短强>
作为一个总结,我想说,添加到serviceCollection的服务中的无效异常可能会在第一次注入时导致此错误。
<强>详情
我在ServiceCollection中添加了自定义UserStore
services.AddIdentity<MyUser, MyUserRole>(config =>
{
config.User.RequireUniqueEmail = true;
})
.AddUserStore<MongoUserStore>()
.AddRoleStore<MongoUserStore>();
问题是 MongoUserStore 实现了错误的接口。它实施了IRoleStore<MyUser>
而不是IRoleStore<MyUserRole>
。当控制器收到SignInManager
的一个实例时,存在无效的操作异常,这些异常没有冒出来。
当我修复此问题时,该服务正在运行