我正在一个具有不同用户角色的项目中。我有一个管理员链接,如果用户是管理员,则显示该链接,否则,则隐藏。我正在使用:
<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>
}
我最初登录时工作正常,但是当我在本地运行该项目并停止它,然后重新启动它时,我的用户名(具有Admin角色)仍然登录,但是Admin链接消失了,我有注销,然后重新登录同一用户以显示管理员链接。有什么方法可以让它在重新启动项目时记住用户的角色。
我认为重新启动项目时它记住用户名和密码的方式是在我的控制器中:
[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有关的操作,例如登录模型中的Cookie?