[英]asp.net 5.0.3 identity Authorization not work
我用 asp.net mvc 5 建立了一個網站,我使用身份 3 並為控制器使用授權屬性但即使我已登錄,它仍然會將我帶到登錄頁面
啟動.cs:
app.UseRouting();
app.UseAuthorization();
app.UseAuthentication();
controller:
[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);
}
需要檢查的幾件事:
這里小寫:
[Authorize(Roles ="admin")]
這里大寫:
if (await _userManager.IsInRoleAsync(user, "Admin"))
您是否確實將相關用戶添加到角色中? 請發布該代碼,以便我們可以看到您在做什么(尤其是外殼)。
服務器時區。 確保您考慮服務器與客戶端區域。 我不知道這是否是 Identity 的問題,但它過去曾困擾過我。
授權前需要注冊認證:
app.UseAuthentication();
app.UseAuthorization();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.