Вы можете показать страницы по-разному, проверив, какой пользователь это
В моем _Layout.cshtml у меня есть это:
@if (Request.IsAuthenticated && HttpContext.Current.User.IsInRole("Interviewer"))
{
<script type="text/javascript">
$("#logindisplay").show();
</script>
<li>@Html.ActionLink("Forside", "Index", "Home")</li>
<li>@Html.ActionLink("Spørgeskema", "Index", "Survey2")</li>
<li>@Html.ActionLink("Brugere", "Index", "UserAdministration")</li>
<li>@Html.ActionLink("Statistik", "Index", "Statistik")</li>
<li>@Html.ActionLink("Vagtplan", "Vagtplan", "Statistik")</li>
}
@if (HttpContext.Current.User.IsInRole("Respondent"))
{
<li>@Html.ActionLink("Gammelt spørgeskema", "Index")</li>
}
И так далее.
Вы можете создавать различные DisplayTemplates для каждого типа роли и отображать их в зависимости от роли, которую имеет пользователь.
Чтобы вручную назначить роли различным пользователям, используйте конфигурацию ASP.NET
![ASP.NET Configuration](https://i.stack.imgur.com/dGbjz.jpg)
Оттуда вы можете создавать свои роли и управлять пользователями.
Вы не хотите делать это в долгосрочной перспективе, если на вашем сайте много пользователей.Вместо этого, когда они создают учетную запись, вы хотите назначить их роль автоматически.
Вы можете сделать это в вашем AccountController, например, так:
if (createStatus == MembershipCreateStatus.Success)
{
Roles.AddUserToRole(model.UserName, "Respondent");
} ....
Ваша модель может иметьСвойство роли вместо его жесткого кодирования.