Каков наилучший способ хранения списка пользователей для атрибута Authorize в Asp. Net MVC? - PullRequest
0 голосов
/ 30 марта 2020

Я хочу указать полномочия attibute со списком пользователей.

Это работает:

[Authorize(Users ="g@gmail.com, m@gmail.com")]

Но я хочу хранить список пользователей в одном месте

Я пытался сохранить их в appSettings:

    <appSettings>
    <add key= "admins" value="g@gmail.com, m@gmail.com" />
    </appSettings>

, а затем создать пользовательский атрибут:

 [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
    public class MyAuthorizeAttribute : AuthorizeAttribute
        {
            public MyAuthorizeAttribute()
            {
                this.Users = WebConfigurationManager.AppSettings["admins"];
            }
        }

И использовать его перед контроллером:

[MyAuthorize]

Но по некоторым причинам это не сработает.

Если у вас есть идеи, как реализовать мою цель или исправить мой код, пожалуйста, напишите.

1 Ответ

1 голос
/ 30 марта 2020

У меня обычно есть 2 способа справиться с этим.

Для вас, похоже, я бы придерживался групп AD.

Так что получите такой файл.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace MyProject.Models
{

    public static class AccessLevelRoles
    {
        public const string Admin = "DOMAIN\\MYGROUP";
    }
}

Тогда вы можете защитить свои действия / контроллеры с помощью.

 [Authorize(Roles = AccessLevelRoles.Admin)]

Это, вероятно, самый простой способ и то, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...