Я добавил некоторые роли в таблицы AspNetroles и назначил эти роли пользователю, но когда я вхожу в систему с идентификатором пользователя и паролем, которому назначены роли, условие всегда становится ложным.
Я добавил некоторые ролидля таблиц AspNetroles, и я назначил эти роли пользователю, но когда я вхожу в систему с идентификатором пользователя и паролем, которому назначены роли, условие всегда становится ложным.
Я отлаживал свой код, но user.Isinrole всегда получает ложь.
Может кто-нибудь помочь мне?
Таблицы с данными
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
@Html.ActionLink("Application name", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" })
</div>
<div class="navbar-collapse collapse">
@User.Identity.AuthenticationType
@{
if (Request.IsAuthenticated)
{
if (User.IsInRole("administrator"))
{
<ul class="nav navbar-nav">
<li>@Html.ActionLink("Home", "Index", "Admin")</li>
<li>@Html.ActionLink("Admin", "Admin", "Admin")</li>
<li>@Html.ActionLink("Doctor", "Doctor", "Admin")</li>
<li>@Html.ActionLink("Receptionist", "Receptionist", "Admin")</li>
</ul>
}
if (User.IsInRole("Admin"))
{
<ul class="nav navbar-nav">
<li>@Html.ActionLink("Home", "Index", "Admin")</li>
<li>@Html.ActionLink("Admin", "Admin", "Admin")</li>
<li>@Html.ActionLink("Doctor", "Doctor", "Admin")</li>
<li>@Html.ActionLink("Receptionist", "Receptionist", "Admin")</li>
</ul>
}
if (User.IsInRole("Doctor"))
{
<ul class="nav navbar-nav">
<li>@Html.ActionLink("Home", "Index", "Doctor")</li>
<li>@Html.ActionLink("Services", "Services", "Doctor")</li>
<li>@Html.ActionLink("Appointment", "Appointment", "Doctor")</li>
<li>@Html.ActionLink("Manage", "Manage", "Doctor")</li>
</ul>
}
if (User.IsInRole("Patient"))
{
<ul class="nav navbar-nav">
<li>@Html.ActionLink("Home", "Index", "Patient")</li>
<li>@Html.ActionLink("Schedule", "Schedule", "Patient")</li>
<li>@Html.ActionLink("Appointments", "Appointments", "Patient")</li>
<li>@Html.ActionLink("Payment", "Payment", "Patient")</li>
</ul>
}
if (User.IsInRole("Receptionist"))
{
<ul class="nav navbar-nav">
<li>@Html.ActionLink("Home", "Index", "Patient")</li>
<li>@Html.ActionLink("Appointments", "Schedule", "Patient")</li>
</ul>
}
if (User.IsInRole(""))
{
<ul class="nav navbar-nav">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("About", "About", "Home")</li>
<li>@Html.ActionLink("Contact", "Contact", "Home")</li>
</ul>
}
}
else
{
<ul class="nav navbar-nav">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("About", "About", "Home")</li>
<li>@Html.ActionLink("Contact", "Contact", "Home")</li>
</ul>
}
}
@Html.Partial("_LoginPartial")
</div>
[HttpPost]
[ValidateAntiForgeryToken]
[AllowAnonymous]
public ActionResult SignIn(SignInview Sv)
{
var Auser = _context.AspNetUsers.Where(m => m.UserName == Sv.Username).SingleOrDefault();
if(Auser!=null)
{
FormsAuthentication.SetAuthCookie(Sv.Username, true);
Session["User"] = Auser.UserName;
Session["UserId"] = Auser.Id;
return RedirectToAction("Index", "Home");
}
else
{
ModelState.AddModelError(string.Empty, "Username or password is wrong");
return View(Sv);
}
}