Многопользовательское приложение ASP.NET с определенными ролями

У нас есть мультитенантное приложение ASP.NET. До сих пор арендаторы были изолированы друг от друга, однако теперь у нас есть агентства, которые управляют несколькими арендаторами и хотят иметь возможность управлять всеми своими арендаторами с помощью одной учетной записи пользователя. Я'Я пытаюсь найти лучший способ добиться этого, надеюсь, без особых изменений в существующих технологиях, которые мы используем.

Соответствующие технические данные:

AspNetSqlMembershipProvider для членства и ролейC # 4.0 (скоро будет 4.5)Аутентификация по формамСтраницы aspx и MVC (v3)Предполагается 100 или более арендаторов, поэтому любое решение должно поддерживать это

Я считаю, что требования очень похожи на модель безопасности для SQL Server. У нас есть один набор логинов, которые представляют всех пользователей, которые могут войти в систему. Пользователи должны иметь возможность назначать роли одной или нескольким базам данных (арендаторам). Пример: пользователь Боб имеет роль администратора в компании A, но только роль пользователя в компании B. У нас также есть "сисадмин» роль для моей компанииs сотрудников, которые предоставляют нам доступ к любому арендатору, а также к специальным административным привилегиям, таким как создание / удаление арендаторов и т. д.

Я провел много исследований в различных библиотеках, фреймворках и т. д., и у меня нетне нашел никаких убедительных доказательств того, что какая-то другая библиотека или структура будет лучше, чем у нас в настоящее время. Так что я'В настоящее время я думаю только о том, как заставить провайдера Sql Membership делать то, что я хочу, если только кто-то не укажет мне лучшее направление. Я'Я также не уверен, что знаю лучшие термины для поиска в этом.

у меня есть 2 вариантам с учетом:

Добавьте только несколько ролей к поставщику членства и обработайте все вопросы "имеет ли текущий пользователь эту роль в этом арендаторе? вне поставщика членства. Поставщик членства будет использоваться для управления базовым доступом к системе.Добавьте определенные роли арендатора к поставщику членства. Мы бы имели (# ролей) х (# арендаторов) общее количество ролей в системе. Каждый новый арендатор будет добавлять в систему другой набор ролей, например, "Арендатор A: Admin ","Арендатор A: Пользователь "и т. д. Потребуются некоторые дополнительные таблицы для управления отношениями, а также, возможно, некоторый пользовательский код, чтобы гарантировать, что доступ запрашивает правильную специфичную для арендатора роль у поставщика членства.

Хороши ли эти варианты? Или я должен искать в другом месте для поддержки этого?

Ответы на вопрос(2)

Ваш ответ на вопрос