powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / SimpleMembershipProvider з ADO.NET EDM
14 сообщений из 14, страница 1 из 1
SimpleMembershipProvider з ADO.NET EDM
    #38268154
netls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хочу использовать SimpleMembershipProvider с ADO.NET EDM, без написания прослойки относительно MembershipProvider

В Entity Data Model с помощью сопоставления, сопоставлены таблицы:
Admin_Membership к webpages_Membership
AdminInType к webpages_UsersInRoles
UserAdmin к UserProfile
RoleUserAccaunt к webpages_Roles

В проекте используется EntityFramework 5
также установлено провайдер для работы с EDM (Microsoft ASP.NET Universal Providers Core Libraries 1.2)

При запуске не выполняется Инитиализация относительно EDM (в свою очередь не запускаэться SimpleMembership)
Не удалось найти запрошенного поставщика данных .Net Framework. Возможно он не установлен.
Код: c#
1.
WebSecurity.InitializeDatabaseConnection("daseSystemEntities", "UserProfile", "UserId", "UserName", autoCreateTables: false);


При запуске не выполняется Инитиализация относительно EDM (в свою очередь не запускаэться SimpleMembership)

Мой web.config
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 <connectionStrings>
    <add name="daseSystemEntities" connectionString="metadata=res://*/DAL.AdminModel.csdl|res://*/DAL.AdminModel.ssdl|res://*/DAL.AdminModel.msl;provider=System.Data.SqlClient;provider connection string="data source=NPC;initial catalog=baseSystem;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />  
  </connectionStrings>
    <membership defaultProvider="SimpleMembershipProvider">
      <providers>
        <add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData"  />
      </providers>
    </membership>
    <roleManager defaultProvider="SimpleRoleProvider" enabled="true">
      <providers>
        <add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData" />
      </providers>
    </roleManager>


Пожалуйста подскажите, или предоставьте пример правильного написания Web.config!!!
...
Рейтинг: 0 / 0
SimpleMembershipProvider з ADO.NET EDM
    #38268492
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё работает. Убрал Code First, прикрутил Edm, работает должным образом. Проверяй.
...
Рейтинг: 0 / 0
SimpleMembershipProvider з ADO.NET EDM
    #38268532
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще вот это указывать не надо, оно и так по дефолту.

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<membership defaultProvider="SimpleMembershipProvider">
      <providers>
        <add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData"  />
      </providers>
    </membership>
    <roleManager defaultProvider="SimpleRoleProvider" enabled="true">
      <providers>
        <add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData" />
      </providers>
</roleManager>



Но если указываешь, то нужно чистить остальные провайдеры:

Код: xml
1.
2.
3.
4.
<providers>
        <clear />
        <add ... />
</providers>
...
Рейтинг: 0 / 0
SimpleMembershipProvider з ADO.NET EDM
    #38268981
netls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ
Да за clear вы правы, упостил
Код: xml
1.
2.
3.
4.
<providers>
        <clear />
        <add ... />
</providers>



Но в вашем примере для SimpleMembership инитиализация соединения выполняется по DefaultConnection с провайдером SqlClient
а не по соединении UsersContext с провайдером EntityClient
Код: xml
1.
2.
3.
4.
 <connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=.;Initial Catalog=Membership;Integrated Security=True" providerName="System.Data.SqlClient" />
    <add name="UsersContext" connectionString="metadata=res://*/UsersContext.csdl|res://*/UsersContext.ssdl|res://*/UsersContext.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.;initial catalog=Membership;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>


Код: c#
1.
 WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);



В моем случае нет непосредственно созданных таблиц MS SQL базе с именами webpages_Membership, webpages_UsersInRoles, UserProfile, webpages_Roles
Я их сопоставяю с помощью Entity Data Model например:
Код: plaintext
1.
2.
3.
Admin_Membership к webpages_Membership
AdminInType к webpages_UsersInRoles
UserAdmin к UserProfile
RoleUserAccaunt к webpages_Roles

Поэтому в моем случае если в базе непосредственно нет таблиц webpages_Membership, webpages_UsersInRoles, webpages_Ролес , названия которых в SimpleMembershipProvider заданные по умолчанию как константы, даст Ошибку

Если я не четко выложил суть проблемы или неправильно понял Ваш ответ. Буду признателен за детальный ответ.
...
Рейтинг: 0 / 0
SimpleMembershipProvider з ADO.NET EDM
    #38269184
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не надо ничего придумывать и сопоставлять, используй нативные таблицы симпла и не будет никаких проблем.
...
Рейтинг: 0 / 0
SimpleMembershipProvider з ADO.NET EDM
    #38269623
netls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если я Вас правильно понял, вы говорите чтобы SimpleMembershipProvider создал при ининиализации нужные ему таблицы с помощью autoCreateTables: true и не париться.

К сожалению это решение не подходит ведь уже есть созданные таблицы MembershipProvider в данной базе которые использует другой ресурс.
Данные из таблиц симпла должны быть уникальны для каждого ресурса поэтому я и использовал сопоставленного в EF 5. Данное решение я принял з http://weblogs.asp.net/jgalloway/archive/2012/08/29/simplemembership-membership-providers-universal-providers-and-the-new-asp-net-4-5-web-forms-and-asp-net-mvc-4-templates.aspx где говорится что MembershipProvider + EF + Microsoft ASP.NET Universal Провидерс (версия> 1.1) должны работать корректно.
К сожалению у меня не выходить
...
Рейтинг: 0 / 0
SimpleMembershipProvider з ADO.NET EDM
    #38269671
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netlsЕсли я Вас правильно понял, вы говорите чтобы SimpleMembershipProvider создал при ининиализации нужные ему таблицы с помощью autoCreateTables: true и не париться.

К сожалению это решение не подходит ведь уже есть созданные таблицы MembershipProvider в данной базе которые использует другой ресурс.
Данные из таблиц симпла должны быть уникальны для каждого ресурса поэтому я и использовал сопоставленного в EF 5. Данное решение я принял з http://weblogs.asp.net/jgalloway/archive/2012/08/29/simplemembership-membership-providers-universal-providers-and-the-new-asp-net-4-5-web-forms-and-asp-net-mvc-4-templates.aspx где говорится что MembershipProvider + EF + Microsoft ASP.NET Universal Провидерс (версия> 1.1) должны работать корректно.
К сожалению у меня не выходить
...
Рейтинг: 0 / 0
SimpleMembershipProvider з ADO.NET EDM
    #38269672
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netlsЕсли я Вас правильно понял, вы говорите чтобы SimpleMembershipProvider создал при ининиализации нужные ему таблицы с помощью autoCreateTables: true и не париться.
Именно.

netlsК сожалению это решение не подходит ведь уже есть созданные таблицы MembershipProvider в данной базе которые использует другой ресурс.
Тогда без понятия. Либо попробуй вьюхами обвяжи с названиями webpages_Membership, webpages_UsersInRoles, ... Возможно, такой хак пройдёт. Либо слепи классический мембершип провайдер на кастом таблицах. Как сделать через прямые руки то, что ты хочешь, я не знаю. Возможно как-то можно честно кастомизировать симпл.
...
Рейтинг: 0 / 0
SimpleMembershipProvider з ADO.NET EDM
    #38269901
netls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На данный момент для вирышення данной задачи я буду использовать
MongoSimpleMembership http://lyphtec.github.io/MongoSimpleMembership/
Позволяет использовать нужные таблицы из базы данных
Код: xml
1.
2.
3.
4.
5.
6.
 <appSettings>
    <add key="MongoSimpleMembership:MembershipAccountName" value="webpages_Membership" />
    <add key="MongoSimpleMembership:OAuthMembershipName" value="webpages_OAuthMembership" />
    <add key="MongoSimpleMembership:OAuthTokenName" value="webpages_OAuthToken" />
    <add key="MongoSimpleMembership:RoleName" value="webpages_Role" />
  </appSettings>
...
Рейтинг: 0 / 0
SimpleMembershipProvider з ADO.NET EDM
    #38269911
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо заюзать исходники и посмотреть, как они сделали. Наверное, SimpleMembership провайдер перекорёжили.
...
Рейтинг: 0 / 0
SimpleMembershipProvider з ADO.NET EDM
    #38273725
netls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может кому-то нужно
Переписал SimpleMembershipProvider 2.0
От EF отказался потому что есть избыточность которая позже может выйти боком.

Таблици задаются в веб конфиге, если не заданы берутся по умолчанию стандартные
Код: xml
1.
2.
3.
4.
5.
6.
7.
<appSettings>
    <add key="SimpleMembershipProvider:webpages_Membership" value="admin_Membership" />
    <add key="SimpleMembershipProvider:webpages_OAuthMembership" value="OAuthMembership" />
    <add key="SimpleMembershipProvider:webpages_OAuthToken" value="OAuthToken" />
    <add key="SimpleMembershipProvider:webpages_Roles" value="Roles" />
    <add key="SimpleMembershipProvider:webpages_UsersInRoles" value="UsersInRoles" />
  </appSettings>
...
Рейтинг: 0 / 0
SimpleMembershipProvider з ADO.NET EDM
    #38273816
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netlsПереписал SimpleMembershipProvider 2.0
Переписать весь WebMatrix.WebData? Жестоко...
...
Рейтинг: 0 / 0
SimpleMembershipProvider з ADO.NET EDM
    #38273913
netls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, другого варианта не было. Данное решение поддерживает дальнейшее нормальное расширение, и открытость кода.
:-) К сожалению написания с нуля кода мне заняло меньше времени, чем поиск решения.
...
Рейтинг: 0 / 0
SimpleMembershipProvider з ADO.NET EDM
    #38273936
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну не знаю. Я б, наверное, отказался от симпла и смотрел в сторону классического мембершип провайдера.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / SimpleMembershipProvider з ADO.NET EDM
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]