Поставщики членства/Роли/Профиля API появились в первые годы asp.net
Почти каждый раз я не могу жить со стандартным API и иметь для добавления некоторой дополнительной функциональности (для сортировки, получая e.t.c.). Я также должен часто использовать другую структуру базы данных (с внешним ключом к некоторым таблицам, например) или думать о повышениях производительности.
Эти соображения вынудили команды, в которых я принял участие создать собственных поставщиков, но я не могу выдержать реализовать поставщиков API (потому что мы не используем 70% стандартной функциональности, по крайней мере). Кроме того, поставщики, которые были созданы для точных проектов, редко снова использовались.
Интересно, нашел ли кто-то швейцарский нож реализацией поставщиков API первых лет, которая полезна для любого вида проекта без рефакторинга... Или Вы используете свои собственные реализации API первых лет Или можете быть Вами, отказываются от стандартной архитектуры и используют легкие реализации?
Заранее спасибо
Я тоже обнаружил, что часто мне не нужна вся функциональность, представленная в стандартных базах MembershipProvider. В наши дни я предпочитаю писать свои собственные легкие методы для аутентификации и авторизации пользователей.
Обычно я следую следующим рекомендациям:
Ниже приведен пример кода, который вы можете использовать для создания FormsAuthenticationTicket самостоятельно, используя собственные легковесные методы для аутентификации и авторизации пользователей:
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
data.AccountId.ToString(),
DateTime.Now,
DateTime.Now.AddHours(24),
rememberMe,
data.ToString());
string encryptedTicket = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
if (rememberMe)
cookie.Expires = DateTime.Now.AddDays(30);
HttpContext.Current.Response.Cookies.Add(cookie);
Это лишь приблизительная идея, но помните, что все зависит от вас: будете ли вы использовать MembershipProviders как есть, реализуете ли вы свои собственные, или вы решите отказаться от них вообще и создать свои собственные, обеспечивающие только необходимую вам функциональность. Я часто выбираю последнее, просто потому что многие приложения, которые я пишу, являются модернизацией устаревших систем, в которых уже есть базы данных членства и т.д.
Надеюсь, это поможет.