Які недоліки використання / написання постачальника користувальницького користування .Net?


12

Нещодавно я опублікував таке запитання на SO: /programming/7197337/using-asp-net-membership-provider-with-an-existing-user-database

Як ви можете помітити, я, нарешті, відповідав на власне запитання, вказуючи, що це виглядає як написання / реалізація "Постачальника користувальницького членства".

Буквально через кілька хвилин я натрапляю на це питання: /programming/7222306/simple-login-attempt-counter-using-mvc-3-and-ajax/7222407#7222407

Я намагаюся відповісти і отримати коментар назад, що постачальник .Net Membership "жахливий на багатьох рівнях". Я визнаю, це перший раз, коли я використовую провайдера членства, але це впевнено виглядало на мене.

Я не бачив нічого, що б підтверджувало "жахливу" претензію, тому, перш ніж здійснити щось "жахливе", я сподівався отримати зворотній зв'язок від громади.


З нетерпінням чекаю на відповіді, +1 ..
Pankaj Upadhyay

Відповіді:


1

Тож я не впевнений, що "страшне" - це найкраще слово тут. Однак у нього є обмеження, і як тільки ваші потреби не підходять до того, як був розроблений постачальник членства, ви отримаєте багато клею. Якщо ви можете використати постачальника членства нестандартно, я б сказав, що зайдіть. Як тільки ви почнете писати на замовлення, я все одно запитую, використовуючи матеріали про членство.

З мого досвіду, член провайдеру купує вас ...

  • Підпишіться на вже вбудований додаток MVC
  • Редагування облікового запису
  • Забутий пароль легко підключити
  • Валідація користувальницького методу

Я впевнений, що мені ще чогось не вистачає, але я думаю, що це великі. Тепер, коли вам потрібно користуватися спеціальним керуванням паролем, двофакторною автентифікацією для роботи з існуючою моделлю даних або цілою низкою інших речей, ви починаєте втрачати. Код, який уже написаний для вас з наданням членства, повинен зайняти кілька днів, щоб дублювати, якщо ви знаєте, що ви робите.


1

Це не робить те, що ти хочеш. На перший погляд ви можете виявити, що він піклується про всі ваші потреби та деякі, але з’являється нова вимога. Тепер ви справді повинні дізнатися, як ця річ працює. Вигода від того, що все це було споруджено, зменшується, оскільки ви були в тому помилковому почутті безпеки.

@Travis згадував, використовуючи існуючу модель даних, але вибір бази може також бути обмеженням: Oracle?

Я не знаю, чи працює вона з сторонніми системами верифікації, такими як Facebook чи Google.


1

Вони не такі гнучкі, як багато хто думає, коли швидко прочитають документи, але вони мають своє місце.

Якщо вам не потрібен контроль над токенами користувачів, і вам потрібно лише створити користувацькі / розширені користувацькі дані або набір членства або потрібно витягнути ці дані з існуючого / іншого джерела, вони мають своє місце.

Якщо ви хочете змінити більше, вам часто краще замінити httpmodule, який працює одним з постачальників аутентифікації, тоді ви отримаєте весь контроль. Більшість людей, з якими я стикався з розривом речей з провайдерами, зробили неправильний вибір для своєї ситуації на цьому рівні.

У будь-якому випадку ви отримаєте належним чином заселений контекст.user, який дозволяє продовжувати використовувати більшість функцій користувача на базі asp.net.


1

Це питання давнє, але я отримую значки за його популярність, тому вважаю, що варто надати оновлену відповідь.

Простий постачальник членства від Microsoft нарешті зрозумів, на мою скромну думку. Якщо ви пишете щось нове або навіть приєднуєтесь до застарілої бази даних з новим додатком. Скористайтеся простим постачальником членства. ШЛЯХ ЛЕПШЕ та ЧИСТІШНИЙ для впровадження. Встановіть кілька таблиць і вкажіть провайдера на ваш список користувачів, і ви в основному все зробили.

Це посилання допоможе вам розпочати або просто google: http://www.mattjcowan.com/funcoding/2012/11/10/simplemembershipprovider-in-mvc4-for-mysql-oracle-and-more-with-llblgen/


Прості постачальники членства - це просто так. Просте
hanzolo
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.