Я работаю над проектом, который имеет разные роли пользователей.У меня есть ссылка администратора, которая отображается, если пользователь является администратором, и скрыта, если нет.Я использую:
<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 в моей ролевой модели, как в модели входа?