Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Требуется полный SQL Server по умолчаниюУ меня на Sql Server Web 2008 абсолютно спокойно ставятся все провейдеры и работают. В 2012 версии, я думаю, проблем тоже быть не должно. Наверное, Вы имели ввиду, что это не будет рабоать, например, с Sql CE?
все необходимые данны представлены в виде набора атрибутов (UserName, Password, IsApproved, CreationDate...) и другая информация будет предоставлена используя Profile ProviderНасколько я помню, за это отвечает Membership (MembershipUser)
провайдеры по умолчанию не будут работать на SQL Azure— к сожалению, не могу это опровергнуть, ибо не сведущ. Но мне не понятно, почему не будут?
Для работы с базой данных отличной от SQL Server необходимо переопределить набор методов провайдераВо-первых, есть уже много готовых, например Oracle, db2, но можно спокойно писать и кастомный, о чем есть инфа в документации.
Ориентация на модель Пользователь > Роль— даже не понял, о чем речь, ес честно. Ну, не нравится стандартная, используйте свою. Не вижу проблем никаких. Можно даже свой ролепровайдер написать.
Проблема с ASP.NET Membership в том, что она хранит дополнительную информацию об аккаунте сама. Это значит, что нельзя напрямую получить доступ к данным профиляИбо мембершип и профиль разделены и не связаны друг с другом. И что значит, получить доступ напрямую? И зачем?
Как он реализован я опущу, можно посмотреть в оригинальной записи SimpleMembership. Важно знать, что SimpleMembership унаследован от ExtendedMembershipProviderExtendedMembershipProvider унаследован от того же MembershipProvider, от которого унаследован SqlMembershipProvider. Принципы работы у них одинаковые. Они просто хранят данные по разному.
SimpleMembership разработан для замены предыдущей версии ASP.NET Membership Provider (ASP.NET Role)Я думаю, что они просто добавили новую реализацию мембершипа, которая решает самые простые задачи, от того и simple. И почему Вы пишете, что этот Simple может быть заменой стандартному — тоже не ясно, ведь это просто альтернативная реализация.
У меня на Sql Server Web 2008 абсолютно спокойно ставятся все провейдеры и работают. В 2012 версии, я думаю, проблем тоже быть не должно. Наверное, Вы имели ввиду, что это не будет рабоать, например, с Sql CE?
Насколько я помню, за это отвечает Membership (MembershipUser)
Во-первых, есть уже много готовых, например Oracle, db2, но можно спокойно писать и кастомный, о чем есть инфа в документации.
Ориентация на модель Пользователь > Роль
— даже не понял, о чем речь, ес честно. Ну, не нравится стандартная, используйте свою. Не вижу проблем никаких. Можно даже свой ролепровайдер написать.
И что значит, получить доступ напрямую? И зачем?
Я думаю, что они просто добавили новую реализацию мембершипа, которая решает самые простые задачи, от того и simple. И почему Вы пишете, что этот Simple может быть заменой стандартному — тоже не ясно, ведь это просто альтернативная реализация.
Я и не говорю, что их нет. Скорее о том, что реализация будет сложной если писать отличную от «заранее заданной конфигурации»Эм, то, что Вы можете добавить юзеру любое количество полей, сгенерить таблицу для него через Code First и получить, используя SimpleMembership — это называете отличиями от заранее заданной конфигурации? Или о чем речь? Это всё можно сделать и со стандартной только танцев больше — получить ИД юзера и добавить дополнительную таблицу «ИД-Нужные мне поля».
Claim based auth systemНе понял, причем тут SimpleRoleProvider — ибо это такая же реализация SqlRoleProvider. Даже не удивлюсь, если вдруг можно будет подружить SimpleRoleProvider с SqlMembershipProvider и наоборот (симпл мембершип с sql role). О каких конкретно шагах речь то идет?
Существует большое количество задач, где основным объектом является профиль пользователя, соответственно выполнять операции с ним хочется напрямую с необходимыми полями в базе а не со всем объектом и напрямую через провайдер данных (Data Layer) а не через Auth Layer.Согласен. А ещё я могу использовать доменную авторизацию и подтягивать профиль через LDAP — но мы же это минусом не называем для SimpleMembership. У каждого своя задача и от этого выбирают инструменты. Если надо напрямую оперировать профилем прямо в запросах к базе(разные джойны, например), ну, используйте для этого подходящие решения.
Написан для замены — чтобы заменить, потому что он проще в использовании, функциональнее и расширяемНу, вообще он не покрывает все провайдеры, о которых ведем речь. Как, например, он работать будет, если захочется использовать веб части? Если веб эвенты захочется писать встроенным механизмом в базу? Вы просто намешали всё в одну кучу. Ну, допустим, пользуемся SimpleMembershipProvider и SimpleRoleProvider — что мешает паралельно использовать провайдер для профиля, веб эвентов и персонализации веб частей?
А как вы относитесь к ручной системе авторизации (http://oxozle.com/2013/08/10/avtorizaciya-asp-net-mvc)?Ну, я сам не фанат SqlMembershipProvider, и в каждом конкретном случае нужно выбирать подходящее решение. Я видел разные реализации, начиная от сложной системы ролей/пользователей и заканчивая списком юзеров в файлике на сервере.
Руководство SimpleMembership в ASP.NET MVC 4