Как получить список групп безопасности, к которым принадлежит пользователь, используя angualrjs

0

В моем ASP.Net MVC SPA, который построен с использованием угловых js, я хотел бы показать или скрыть ссылку, основанную на том, находится ли пользователь в определенной группе безопасности или нет. Я планирую использовать директиву ng-if на странице html, чтобы показать или скрыть.

В моем предыдущем проекте, который является чистым приложением MVC.net, у меня был ниже метод, который получает мне этот список групп безопасности.

Но как это сделать в приложении angularjs? В настоящее время мое приложение находится в облаке, и оно аутентифицирует пользователя против Azure Active Directory.

   internal static IEnumerable<string> GetSecurityGroups()
    {
        try
        {
            ClaimsPrincipal claimsPrincipal = null;
            claimsPrincipal = Thread.CurrentPrincipal as ClaimsPrincipal;
            claimsPrincipal = ((claimsPrincipal == null) && (HttpContext.Current.User != null))
                ? HttpContext.Current.User as ClaimsPrincipal
                : claimsPrincipal;
            if (claimsPrincipal != null)
            {
                return ((ClaimsIdentity)claimsPrincipal.Identity).Claims
                    .Where(
                        claim =>
                            "group".Equals(claim.Type.Replace("http://sts.tmft.net/user/", ""),
                                StringComparison.InvariantCultureIgnoreCase))
                    .Select(c => c.Value).ToList();
            }
        }
        catch (Exception exception)
        {
            Log.Error(exception);
        }
        return new[] { "No rights" };
    }

1 ответ

1

Вы можете выставить вышеуказанные (GetSecurityGroups) в качестве веб-службы, а затем использовать угловое использование объекта прав для отображения/скрытия разделов.

Обратите внимание, что вам все равно необходимо ограничить доступ к функциональности (т.е. Вызовы веб-службы, которые скрытые разделы выставляют) на стороне сервера, потому что вы не можете доверять такой защите на стороне клиента как нечто большее, чем незначительное препятствие, если есть пользователи, которые решили использовать неавторизованные функции.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню