Портирование Rhino Security на Entity Framework - почему его там еще нет? - PullRequest
1 голос
/ 20 марта 2012

Я использую (Code First) Entity Framework 4.3 для проекта ASP.NET MVC и хотел реализовать детализированные функции авторизации на основе разрешений, предоставляемые Rhino Security

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

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

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


ЛЮБЫМ ДРУГИМ ИДЕЯМ, пожалуйста

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

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

Есть идеи, как начать?

Ответы [ 2 ]

3 голосов
/ 20 марта 2012

Мое мнение:

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

1 голос
/ 20 марта 2012

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

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

I'mне знаю, в чем причина этого, но я уверен, что он тесно связан с NHibernate (или с Castle Active Record, которая основана на NHibernate)

...