我有这个测试帐户,它保存在AspNetUsers (带密码), aspnettroles和AspNetUserRoles。我想登录这个帐户只使用UserName (没有密码)。
我尝试使用SignInManager.SignInAsync()
,但当它重定向到具有授权属性的页面时,我失败了,似乎它不验证用户。
public ActionResult Confirmation(string userName)
{
var user = UserManager.FindByName(userName);
SignInManager.SignInAsync(user, true, true);
return RedirectToAction("Action", "Controller");
}
[Authorize(Roles = "Member")]
public ActionResult Action()
{
// do something
}
如何正确地做到这一点?
我发现这两个链接可以解决这个问题。
- 认证管理器
- 基于角色的索赔