Роли пользователя ушли после перезапуска приложения ASP.NET - PullRequest
0 голосов
/ 13 марта 2019

Я работаю над проектом, который имеет разные роли пользователей.У меня есть ссылка администратора, которая отображается, если пользователь является администратором, и скрыта, если нет.Я использую:

         <li>@Html.ActionLink("Home", "Index", "Home")</li>
         <li>@Html.ActionLink("Contact", "Contact", "Home")</li>
          @if (Request.IsAuthenticated && User.IsInRole("Admin"))
            {
                <li>@Html.ActionLink("Admin", "AdminIndex", "Account")</li>
            }

Он работает нормально при первом входе в систему, однако, когда я запускаю проект локально и останавливаю его, а затем перезапускаю, мое имя пользователя (с ролью администратора) все еще регистрируетсяв, однако ссылка администратора исчезает, и я должен выйти из системы, а затем снова войти в систему от того же пользователя, чтобы отобразить ссылку администратора.Есть ли способ заставить его запомнить роль пользователя при перезапуске проекта.

Я думаю, что способ запоминания имени пользователя и пароля при перезапуске проекта заключается в следующем:

[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginModel model, string returnUrl)
{
  if (ModelState.IsValid && 
  WebMatrix.WebData.WebSecurity.Login(model.UserName, model.Password, 
  persistCookie: model.RememberMe))
  {
    return RedirectToLocal(returnUrl);
  }


  ModelState.AddModelError("", "The user name or password provided is 
  incorrect.");
  return View(model);
}  

Но я не уверен, потому что он был встроен в проект.Нужно ли мне добавлять ссылку «Действие для моих ролей пользователей», чтобы что-то делать с Cookie в моей ролевой модели, как в модели входа?

...