asp.net 5.0.3 身份授权无效
asp.net 5.0.3 identity Authorization not work
我用 asp.net mvc 5 建立了一个网站 我使用 identity 3 并为控制器使用 authorize 属性
但是即使我已经登录了,它仍然会把我带到登录页面
startup.cs :
app.UseRouting();
app.UseAuthorization();
app.UseAuthentication();
控制器:
[Authorize]
public async Task<IActionResult> Index()
{
}
签到行动:
public async Task<IActionResult> Login(LoginViewModel model, string returnUrl)
{
if (_signInManager.IsSignedIn(User))
return RedirectToAction("Index", "Home");
model.ReturnUrl = returnUrl;
ViewData["returnUrl"] = returnUrl;
if (ModelState.IsValid)
{
var result = await _signInManager.PasswordSignInAsync(
model.UserName, model.Password, model.RememberMe, true);
if (result.Succeeded)
{
var user = await _userManager.FindByNameAsync(model.UserName);
if (!string.IsNullOrEmpty(returnUrl) && Url.IsLocalUrl(returnUrl))
return Redirect(returnUrl);
if (await _userManager.IsInRoleAsync(user, "Admin"))
return RedirectToAction("Index", "Manage");
}
if (result.IsLockedOut)
{
ViewData["ErrorMessage"] = "اکانت شما به دلیل پنج بار ورود ناموفق به مدت پنج دقیقه قفل شده است";
return View(model);
}
ModelState.AddModelError("", "رمزعبور یا نام کاربری اشتباه است");
}
return View(model);
}
授权前需要注册认证:
app.UseAuthentication();
app.UseAuthorization();
需要检查的几件事:
- 案例敏感性:
此处小写:
[Authorize(Roles ="admin")]
此处大写:
if (await _userManager.IsInRoleAsync(user, "Admin"))
您是否真的将相关用户添加到该角色?请 post 该代码,以便我们可以看到您在做什么(尤其是外壳)。
服务器时区。确保考虑服务器区域与客户端区域。我不知道这是否是 Identity 的问题,但它过去曾困扰过我。
我用 asp.net mvc 5 建立了一个网站 我使用 identity 3 并为控制器使用 authorize 属性 但是即使我已经登录了,它仍然会把我带到登录页面
startup.cs :
app.UseRouting();
app.UseAuthorization();
app.UseAuthentication();
控制器:
[Authorize]
public async Task<IActionResult> Index()
{
}
签到行动:
public async Task<IActionResult> Login(LoginViewModel model, string returnUrl)
{
if (_signInManager.IsSignedIn(User))
return RedirectToAction("Index", "Home");
model.ReturnUrl = returnUrl;
ViewData["returnUrl"] = returnUrl;
if (ModelState.IsValid)
{
var result = await _signInManager.PasswordSignInAsync(
model.UserName, model.Password, model.RememberMe, true);
if (result.Succeeded)
{
var user = await _userManager.FindByNameAsync(model.UserName);
if (!string.IsNullOrEmpty(returnUrl) && Url.IsLocalUrl(returnUrl))
return Redirect(returnUrl);
if (await _userManager.IsInRoleAsync(user, "Admin"))
return RedirectToAction("Index", "Manage");
}
if (result.IsLockedOut)
{
ViewData["ErrorMessage"] = "اکانت شما به دلیل پنج بار ورود ناموفق به مدت پنج دقیقه قفل شده است";
return View(model);
}
ModelState.AddModelError("", "رمزعبور یا نام کاربری اشتباه است");
}
return View(model);
}
授权前需要注册认证:
app.UseAuthentication();
app.UseAuthorization();
需要检查的几件事:
- 案例敏感性:
此处小写:
[Authorize(Roles ="admin")]
此处大写:
if (await _userManager.IsInRoleAsync(user, "Admin"))
您是否真的将相关用户添加到该角色?请 post 该代码,以便我们可以看到您在做什么(尤其是外壳)。
服务器时区。确保考虑服务器区域与客户端区域。我不知道这是否是 Identity 的问题,但它过去曾困扰过我。