Как использовать IsInRole от членства ASP.NET в библиотеке DLL - PullRequest
0 голосов
/ 20 декабря 2009

Большинство реальных веб-приложений имеют по крайней мере одну библиотеку DLL. Если мы используем поставщик членства ASP.NET, как мы можем вызвать метод Roles.IsInRole в dll?

Возможность ссылки на HttpContext не является хорошей. Потому что у нас есть несколько инструментов консольных приложений, которые используют одну и ту же dll для выполнения нескольких массовых операций.

1 Ответ

1 голос
/ 20 декабря 2009

Похоже, вам нужно отделить механизм членства от ASP.NET.

Есть несколько хороших ресурсов здесь о том, как ссылаться на поставщика членства ASP.NET из приложений Windows Forms, который будет работать аналогично для консольных приложений.

Лучший из них - здесь (в VB.NET).

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

Поэтому лучшим подходом было бы либо напрямую запрашивать базы данных членства ASP.NET из вашего кода в ADO.NET (что не сложно: они довольно простые), либо использовать собственную реализацию базового поставщика членства. интерфейсы (подробности на MSDN здесь ). Затем вы можете попросить поставщика членства ASP.NET вызвать собственный код, чтобы определить, играет ли пользователь роль, и использовать этот код таким же образом из консольного приложения.

...