Основной вопрос разработки программного обеспечения с использованием ролей и членства - PullRequest
0 голосов
/ 05 января 2010

Я смотрю на API и вижу два следующих вызова:

API.Users.Roles.getAllRoles();

API.Admin.Roles.getAllRoles();

Я хотел бы знать, как каждый из этих вызовов используется в контекст веб-программы. Поскольку и администратор, и пользователи являются свойствами, что именно получить; задавать; делать? Как звонок узнает, какой администратор (или пользователь) звонит?

Я догадываюсь, что это как-то связано с классом API экземпляр (и сеанс?), но я был бы признателен, чтобы пройтись по тому, что здесь происходит, поэтому я полностью понимаю это.

(Сокращенная) структура класса выглядит следующим образом:

public class API() 
{
 public Admin Admin { get; private set; }
 public Users Users { get; private set; }
}

public class Users
{
 public Roles Roles { get; private set; }
    ...
}

 public class Roles
 {

    public override string[] GetAllRoles()
    { 
      ...
    }
 }

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 05 января 2010

Он будет проверять текущее имя пользователя у текущего участника (HttpContext.Current.User.Identity.Name), который использует учетную запись формы / Windows в зависимости от настройки, или, если не в веб-среде, он будет использовать текущего пользователя Windows вошел в систему.

0 голосов
/ 05 января 2010

Мне кажется, что у них есть собственный поставщик ролей, и поэтому он переопределяет метод GetAllRoles , чтобы роли можно было получить из источника данных. Не видя дальнейших подробностей, я могу только предположить, но когда пользователь регистрируется, ему, вероятно, назначают определенную роль. Затем они могут использовать метод Roles.IsUserInRole, чтобы определить, какой роли назначен пользователь. Подробнее о поставщиках пользовательских ролей здесь объясняется, почему методы перезаписываются.

...