1

Я использую (Code First) Entity Framework 4.3 для проекта ASP.NET MVC, и хотел реализовать гранулированные права на основе функции авторизации, как это предусмотрено Rhino безопасностиПортирование системы безопасности Rhino для платформы Entity - Почему ее еще нет?

Хотя это только такое разрешение на основе Lib доступны, но он еще не портирован в EF. Что может быть причиной,

  1. Такое разрешение Framework не является обычным требованием в проектах, так что это не так известен
  2. Entity Framework не настолько эффективен, и поэтому не столь вездесущи, как NHibernate
  3. Rhino Repository настолько тесно связан с NHibernate, что это не возможно просто портировать его на EF

Самым важным, если я действительно настаиваю на использование его с EF, и если вы мне скажете, что это невозможно, пожалуйста, вы можете помочь мне понять почему. И если ваш ответ в ДА, пожалуйста, вы можете помочь мне с КАК СДЕЛАТЬ ЭТО


ДРУГИЕ ИДЕИ, пожалуйста

Если я действительно начала его реализации с помощью EF, будет его быть бесполезным делом. Любые осложнения, с которыми я столкнулся бы.

Поскольку я просто новичок как с Entity Framework, так и MVC, есть что-то, что я пропускаю. Итак, пожалуйста, помогите мне всем Гениальным людям.

Любые идеи с чего начать?

ответ

1

Я бы сказал, что третий ответ:

Rhino Repository настолько тесно связанные с NHibernate, что это не можно просто портировать его на EF

Я не уверен, что причина этого, но я уверен, что она тесно связана с NHibernate (или с Castle Active Record, основанной на NHibernate)

3

Мое мнение:

Его нельзя портировать напрямую. Rhino-Security следует концепции разделения (абстрагирования) безопасности от вашей модели домена. Это разделение осуществляется через интерфейс IUser. Внедрение интерфейса IUser в вашем классе User будет единственным соединением между вашей моделью домена и инфраструктурой безопасности, предоставляемой инфраструктурой. Здесь возникает проблема. EF в настоящее время не поддерживает интерфейсы, поэтому вы не можете использовать интерфейс вместо реального типа сущности в сопоставлении, и вы не можете иметь интерфейс вместо реального типа сущности в качестве свойства навигации в своих объектах. Из-за этого Rhino-Security нельзя портировать в EF без ущерба для своей основной идеи - вам нужно будет создать объект User непосредственно в портированной библиотеке безопасности, и все приложения должны будут зависеть от реализации User.

+0

Итак, если я решил уступить идее связать структуру безопасности с моделью, создав пользовательский объект, любую другую проблему, которую вы видите? И как мне начать с этого? – WiseGuy

+0

И какой важный момент я должен иметь в виду, учитывая, в частности, последствия для производительности. – WiseGuy

+0

Это вопрос, на который нельзя легко ответить, не пытаясь сделать порт - вам нужно будет найти ответ сами. Я не углубился в реализацию. Я знаю только основы. –