Аутентификация Windows ASP.NET маршрутизация разных групп - PullRequest
0 голосов
/ 03 марта 2019

Я пытаюсь настроить приложение, которое будет маршрутизировать различные области моего приложения на основе их групп в Active Directory с использованием проверки подлинности Windows.

Например, у меня есть пользователь, который является администраторомГруппа перенаправляется в одну область, а группа пользователей - в другую.
Все пользователи будут входить в приложение, используя тот же URL-адрес, но в зависимости от группы, в которой они находятся, будут перенаправлять их в соответствующие области.

Я не уверен, где это обрабатывается?Если у кого-то есть ссылка на сценарий, где на этот вопрос уже дан ответ, это было бы замечательно.

Любая помощь и руководство приветствуются, и дайте мне знать, если вам нужна дополнительная информация или я неясен в этом описании.

Ответы [ 2 ]

0 голосов
/ 03 марта 2019

Вы ищете это, вероятно:

1.

public ActionResult LogIn(string userName, string password)
{

  if (!Membership.ValidateUser(userName, password))
  {
    Redirect("http://goaway.com");
  }

  string[] userRoles = Roles.GetRolesForUser();
  string
    controller,
    action;

  if (userRoles.Contains("Role1"))
  {
    controller = "Role1";
    action = "Index";
  }
  else if (userRoles.Contains("Role2"))
  {
    controller = "Role2";
    action = "Index2";
  }
  else
  {
    throw new InvalidOperationException("Bad user!");
  }

  return RedirectToActionPermanent(action, controller);
}
<configuration>
  <system.web>
    <roleManager enabled="true" />
  </system.web>
</configuration>

2.

public ActionResult LogIn2(string userName, string password)
{

  if (!Membership.ValidateUser(userName, password))
  {
    Redirect("http://goaway.com");
  }

  string
    controller,
    action;

  if (User.IsInRole("Admins"))
  {
    controller = "Admins";
    action = "LogIn";
  }
  else if (User.IsInRole("Editors"))
  {
    controller = "Editors";
    action = "LogIn";
  }
  else
  {
    controller = "LogOut";
    action = "LogoOut";
  }

  return RedirectToActionPermanent(action, controller);
}
0 голосов
/ 03 марта 2019

Маршрутизация на основе ролей / групп не поддерживается ASP.NET MVC, вы можете перенаправить на соответствующее действие в вашем индексе Home Controller, как показано ниже.

if (User.IsInRole("Admin"))
{
    return RedirectToAction("Index", "AdminController");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...