Лучшее, что вы можете сделать в этом случае - это реализовать собственный (пользовательский) поставщик членства и роли. Связь между членством и ролями определяется самим собой, и для этого обычно используется имя пользователя.
Замечание об ответах поэта:
Возможно, я не должен был упомянуть «лучшее решение», но, на мой взгляд, членство в сети САШ, и роль поставщика по умолчанию сопровождает таблицы в сеть САШ, которые создаются с помощью САШ -regsql команда. Если поставщик членства и роли Microsoft не полностью удовлетворяет ваши потребности, вы должны создать свой собственный. Если вы создаете свой собственный членский и ролевой провайдер, всем разработчикам будет ясно, что они имеют дело с реализацией поставщика, которая работает или структурирована по-другому.
Мое заключение заключается в том, что мое решение было, пожалуй, не «лучшим решением», а скорее рекомендацией. Другое дело, что поставщики ASP.NET в любом случае не являются примером хорошего дизайна программного обеспечения. Мы все еще используем его из-за их совместимости с другими элементами управления. Ваше решение в порядке, но мое будет так же хорошо, и это до mr. Saif выбрать решение, которое наилучшим образом подходит для его приложения.
Как Microsoft упоминает:
Есть две основные причины для создания пользовательского поставщика членства.
• Вам необходимо сохранить информацию о членстве в источнике данных, который не поддерживается поставщиками членства, включенными в .NET Framework, такими как база данных FoxPro, база данных Oracle или другой источник данных.
• Вам нужно управлять информацией о членстве с использованием
схемы базы данных, которая отличается от схемы базы данных используются поставщиков, которые поставляются с .NET Framework
Я думаю, что внедрение пользовательского провайдера не является ни требованием, ни лучшим решением. –
Не могли бы вы объяснить утверждение «Поставщики ASP.NET не являются примером хорошего дизайна программного обеспечения»? – Greg
Когда моему приложению требуется пользовательская реализация MembershipProvider, которая должна только проверять подлинность и перенаправлять пользователя, она заставляет меня реализовать около 30 методов из базового класса, из которых 90% я никогда не буду использовать. Плохой дизайн! –