powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Разграничение доступа на уровне записей. ASP.NET MVC, EF
160 сообщений из 160, показаны все 7 страниц
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39650902
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, братья по оружию!
Пришел отнимать хлеб у достойнейших представителей MS-технологий :)
"Но токма волею пославшей мя жены".

Итак, задача:
web-приложение, массивы данных, пользователи их вносят и редактируют.
Необходимо реализовать разграничение доступа на уровне записей - чтобы удалять и редактировать мог только автор.
Посоветуйте, пожалуйста, самый популярный в нашей синагоге отходняк лучшие практики реализации подобных задач!
Имею под рукой VS2012, ASP.NET MVC 4, EF, MSSQL 2014, зародыш приложения.
Заранее благодарен!

P.S. По форуму честно прошелся в поиске решений, но по ключевым словам выпадает куча материала, не имеющего отношения к задаче :(
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39650905
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльVS2012ну какие практики со старьем?
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39650910
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,

хранить в базе информацию о том, кем (CreatedBy) и когда (CreatedOn) была создана запись
и проверять при при удалении и редактировании
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39650911
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123КурдльVS2012ну какие практики со старьем?
Вроде бы существует возможность обновить MVC и EF даже для VS2012. А оболочка разве так уж важна?..
Какое обновление Вы сочли бы уже достойным Вашего внимания?
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39650914
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123КурдльVS2012ну какие практики со старьем?
И где старьё, прогрессист?
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39650916
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльКакое обновление Вы сочли бы уже достойным Вашего внимания?
Конечно же VS2017, ASP.NET Core и EF Core
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39650918
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAКурдль,

хранить в базе информацию о том, кем (CreatedBy) и когда (CreatedOn) была создана запись
и проверять при при удалении и редактировании
Знаете, в титрах к сериалам пишут "Автор идеи: такой_то" :)
Это и ежу понятно, что запись должна содержать в себе информацию о том, кто её создал, чтобы как-то потом использовать её.
Вопрос в том, какие приёмы атрибуты использовать в коде.
Как разграничивать по функциям и ролям мне понятно. А как по записям?
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39650923
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльskyANAКурдль,

хранить в базе информацию о том, кем (CreatedBy) и когда (CreatedOn) была создана запись
и проверять при при удалении и редактировании
Знаете, в титрах к сериалам пишут "Автор идеи: такой_то" :)
Это и ежу понятно, что запись должна содержать в себе информацию о том, кто её создал, чтобы как-то потом использовать её.
Вопрос в том, какие приёмы атрибуты использовать в коде.
Как разграничивать по функциям и ролям мне понятно. А как по записям?
Ну как. Можно тупо в начале метода Delete проверить.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39650925
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,

пример кода удаления привести можете?
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39650950
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
в коде удаления ничего необычного, например как приведено ниже.
Понятно, что добавить в него авторизацию (проверку законности удаления) можно.
Но не хотелось бы доводить юзера до функции удаления, а потом огорошивать сообщением "А тебе это недоступно!"
Корректнее отображать элементы управления в тех строках, где они доступны.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
        // GET: Course/Delete/5
        public ActionResult Delete(int? id)
        {
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            Course course = db.Courses.Find(id);
            if (course == null)
            {
                return HttpNotFound();
            }
            return View(course);
        }

        // POST: Course/Delete/5
        [HttpPost, ActionName("Delete")]
        [ValidateAntiForgeryToken]
        public ActionResult DeleteConfirmed(int id)
        {
            Course course = db.Courses.Find(id);
            db.Courses.Remove(course);
            db.SaveChanges();
            return RedirectToAction("Index");
        }
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39650973
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилPetro123пропущено...
ну какие практики со старьем?
И где старьё, прогрессист?ты две винды пропускаешь дома или три?
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39650976
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльPetro123пропущено...
ну какие практики со старьем?
Вроде бы существует возможность обновить MVC и EF даже для VS2012. А оболочка разве так уж важна?..
Какое обновление Вы сочли бы уже достойным Вашего внимания?минимум 2015 с сервис паком3
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39650978
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльНо не хотелось бы доводить юзера до функции удаления, а потом огорошивать сообщением "А тебе это недоступно!"все дважды делают. Слой ГУИ чтобы не огорошить и слой EF или базы.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39650988
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123КурдльНо не хотелось бы доводить юзера до функции удаления, а потом огорошивать сообщением "А тебе это недоступно!"все дважды делают. Слой ГУИ чтобы не огорошить и слой EF или базы.
Ок! Я скорее всего справлюсь со слоем EF самостоятельно.
Ограничусь просьбой о помощи в части GU.
Предположим, что каждый элемент массива данных (запись в таблице) имеет информацию об авторе (id или login или login можно получить через join).
Как отобразить элемент управления в строке, где он уместен и не отобразить - где запрещен?
Заранее благодарен!
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651007
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльОк! Я скорее всего справлюсь со слоем EF самостоятельно.тогда почему нет слов об
NET Identity 2.
Это вроде волшебная парочка для ролей в ASP.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651010
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльКак отобразить элемент управления в строке, где он уместен и не отобразить - где запрещен?
Заранее благодарен!
В контроллере А и контроллере Б ( где запрещено)?
Если читать разрешено то ставите фильтр любым способом. Хоть на клиенте.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651019
Фотография StalkerS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльОк! Я скорее всего справлюсь со слоем EF самостоятельно.
Ограничусь просьбой о помощи в части GU.
Предположим, что каждый элемент массива данных (запись в таблице) имеет информацию об авторе (id или login или login можно получить через join).
Как отобразить элемент управления в строке, где он уместен и не отобразить - где запрещен?
Заранее благодарен!
вопрос не совсем понятен. Как сделать так, что-бы некоторые строки в таблице были недоступны для редактирования? А их можно совсем не показывать? Или надо показывать все, до дисаблить кнопку Удалить для ряда из них? В таблицу вносится дополнительное скрытое поле "CanDelete", если выбранная строка иммет там True - включать кнопку, иначе - выключать. Понятно, что это только удобство GUI, надо перепроверять на сервере
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651035
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StalkerS,
+1
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651038
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StalkerSКурдльОк! Я скорее всего справлюсь со слоем EF самостоятельно.
Ограничусь просьбой о помощи в части GU.
Предположим, что каждый элемент массива данных (запись в таблице) имеет информацию об авторе (id или login или login можно получить через join).
Как отобразить элемент управления в строке, где он уместен и не отобразить - где запрещен?
Заранее благодарен!
вопрос не совсем понятен. Как сделать так, что-бы некоторые строки в таблице были недоступны для редактирования? А их можно совсем не показывать? Или надо показывать все, до дисаблить кнопку Удалить для ряда из них? В таблицу вносится дополнительное скрытое поле "CanDelete", если выбранная строка иммет там True - включать кнопку, иначе - выключать. Понятно, что это только удобство GUI, надо перепроверять на сервере

Коллеги!
ТЗ я указал в первом посте: "Необходимо реализовать разграничение доступа на уровне записей - чтобы удалять и редактировать мог только автор."
Разве там написано "...чтобы видеть мог только автор"? :)
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651047
Фотография StalkerS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльКоллеги!
ТЗ я указал в первом посте: "Необходимо реализовать разграничение доступа на уровне записей - чтобы удалять и редактировать мог только автор."
Разве там написано "...чтобы видеть мог только автор"? :)
там НЕ написано, что он их должен обязательно видеть. Фильтрация строк - страндартный метод решения таких проблем. Если строки должны быть видимы, но кнопки доступны/непоступны в зависимости от текущей строки - решение я написал
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651085
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,
Шо за паника? Тебе сразу все варианты дали. Выбирай любой.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651103
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как на ваш взгляд, годный это материал для моих целей?
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651124
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльНеобходимо реализовать разграничение доступа на уровне записей

На уровне "записей" - это объектная модель ДБ, и она, кстати, под "ограничением доступа" понимает также и чтение.

Выше БД - нет "записей". Там уже объекты. И к MS SQL имеет уже самое косвенное отношение.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651125
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,

если доберётесь до SQL 2016, то в нем есть нативная подддержка RLS.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651126
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльКак на ваш взгляд, годный это материал для моих целей?имхо подходит.
Дерзай и отпишись!
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651128
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
big-dukeКурдль,

если доберётесь до SQL 2016, то в нем есть нативная подддержка RLS.
Это если БЛ в базе делать, а не в АппСервере.
Как бы противоположный способ от ОРМ и EF.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651136
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльКак на ваш взгляд, годный это материал для моих целей?
Фигня, не подходит.

В заголовке про авторизацию, вроде про разграничение прав, а в тексте про аутентификацию.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651138
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
big-dukeКурдль,

если доберётесь до SQL 2016, то в нем есть нативная подддержка RLS.
Это будет работать, если пользователи и роли определены на уровне SQL Server, а не на уровне приложения.
Вангую, что у ТС последнее
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651140
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльИмею под рукой VS2012, ASP.NET MVC 4, EF, MSSQL 2014, зародыш приложения.
А что уже есть в этом зародыше?
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651143
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,

сделайте просто:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
public bool Delete(SomeEntity entity)
{
    if (!security.CanDelete(entity))
    {
        return false;
    }

    // ...
}


Чем не вариант?
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651146
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В таком варианте должен присутствовать некий Context, где содержится в том числе информация о текущем пользователе.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651224
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAbig-dukeКурдль,

если доберётесь до SQL 2016, то в нем есть нативная подддержка RLS.
Это будет работать, если пользователи и роли определены на уровне SQL Server, а не на уровне приложения.
Вангую, что у ТС последнее
Фигово Вы вангуете :)
Пользователи и роли определены в БД и связаны членством.
Зародыш моего проекта имеет парочку контроллеров, необходимые методы для добавления/изменения/удаления данных.
Ну, какую-никакую
Кроме того, он имеет унаследованный от какого-то моего древнего проекта механизм "ASP.NET Membership Provider" с заглушками вместо реальных обращений к БД.
Вот надеюсь понять, куда ушла технология за те годы, пока я не прикасался к MS VS.
И главное - как мне облегчить разовую работу без углубления в фундаментальные науки и академические исследования.

P.S. Аутентификация, авторизация, идентификация и аудит, как правило, падают недалеко от яблони общего фрэймворка под названием security.

P.P.S. Многочисленные упреки в мой адрес по поводу использования устаревших инструментов сподвигли меня на решение накатить VS2017, которая где-то пылится в чулане. Теперь жду новых советов.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651235
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльФигово Вы вангуете :)
Пользователи и роли определены в БД и связаны членством.
То есть каждый пользователь ASP.NET MVC приложения соединяется с БД из под своей личной учётки в БД, а не какой-то общей для всего приложения, прописанной в connectionString?

Это же важный момент, что же Вы молчали
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651248
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAТо есть каждый пользователь ASP.NET MVC приложения соединяется с БД из под своей личной учётки в БД, а не какой-то общей для всего приложения, прописанной в connectionString?

Это же важный момент, что же Вы молчали

Э-э-э... Соединение с БД проискодит с помощью технологической учетной записи, параметры которой в connectionString.
Но данные о каждом пользователе хранятся в БД (из логины, пароли, членство в ролях и т.п.)
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651249
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну так вам же уже выше сказали, что у вас апп-секьюрити, вот из этого факта и гуглите решения
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651270
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдльпомощью технологической учетной записи,EF под ней ходит.

КурдльТеперь жду новых советов.
Каких?
Делайте по фреймворку identity
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651272
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдльнакатить VS2017,core или не Core это сами решайте.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651318
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Каких?
Делайте по фреймворку identity
А для этого OWIN обязателен?
Я увязаю все больше в технологиях, которых не знаю и не имею опыта.
Я не понимаю, как они работают, как с ними совместим типовой хостинг, какие подводные камни меня ждут.
Для саморазвития и прокачки скилов это великолепно, а для сроков и качества маленького проекта - не очень :(
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651359
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльOWINну его же нет по ссылке.
Что вдруг вас взволновало?
Не отвлекайтесь.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651362
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123КурдльOWINну его же нет по ссылке.
Что вдруг вас взволновало?
Не отвлекайтесь.

Код: html
1.
2.
3.
4.
5.
Подключаем необходимые пакеты Nuget

Microsoft.AspNet.Identity.EntityFramework - этот пакет включает реализацию фреймворка с использованием Entity Framework и SQL Server;
Microsoft.AspNet.Identity.Core содержит основные интерфейсы для системы авторизации ASP.NET Identity Framework;
Microsoft.AspNet.Identity.OWIN содержит функции для подключения системы в OWIN спецификацию.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651389
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльskyANAТо есть каждый пользователь ASP.NET MVC приложения соединяется с БД из под своей личной учётки в БД, а не какой-то общей для всего приложения, прописанной в connectionString?

Это же важный момент, что же Вы молчали

Э-э-э... Соединение с БД проискодит с помощью технологической учетной записи, параметры которой в connectionString.
Но данные о каждом пользователе хранятся в БД (из логины, пароли, членство в ролях и т.п.)
Значит вангование моё - правильное
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651471
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльPetro123пропущено...
ну его же нет по ссылке.
Что вдруг вас взволновало?
Не отвлекайтесь.

Код: html
1.
2.
3.
4.
5.
Подключаем необходимые пакеты Nuget

Microsoft.AspNet.Identity.EntityFramework - этот пакет включает реализацию фреймворка с использованием Entity Framework и SQL Server;
Microsoft.AspNet.Identity.Core содержит основные интерфейсы для системы авторизации ASP.NET Identity Framework;
Microsoft.AspNet.Identity.OWIN содержит функции для подключения системы в OWIN спецификацию.


Решаете проблемы по мере их поступления.
Делаете Hello World.
Если ошибка, то гуглите. Не помогает, спрашиваете.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651475
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAКурдльпропущено...


Э-э-э... Соединение с БД проискодит с помощью технологической учетной записи, параметры которой в connectionString.
Но данные о каждом пользователе хранятся в БД (из логины, пароли, членство в ролях и т.п.)
Значит вангование моё - правильное
Просто я не ясно выразился.

В самом SQL server есть Logins, Users, Server-Level Roles, Database-Level Roles, Application Roles:
https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/getting-started-with-database-engine-permissions

И вот я вангую, что Вы используете не их, а создали свои таблицы, где харните логины, пароли, членство в ролях и т.п.
Верно?
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651482
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAПросто я не ясно выразился.

В самом SQL server есть Logins, Users, Server-Level Roles, Database-Level Roles, Application Roles:
https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/getting-started-with-database-engine-permissions

И вот я вангую, что Вы используете не их, а создали свои таблицы, где харните логины, пароли, членство в ролях и т.п.
Верно?
Ну Вы шаман!!! Угадать решение, которое выбирает 99% разработчиков - это бинго! :)
Не знаю последних фич MSSQL Server, но ранее для управления безопасностью (в т.ч. пользователями и ролями) было необходимо иметь права dbo. Так же ведут себя уважаемые СУБД (oracle, DB2, Sybase и т.п.). Кто ж дает технологической записи права dbo?..
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651484
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльНеобходимо реализовать разграничение доступа на уровне записей - чтобы удалять и редактировать мог только автор.

Это сегодня. А завтра?

Вам разграничение доступа нужно на уровне приложения, или на уровне БД?
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651490
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
Он же сказал ef. Значит логично что база не при делах))))
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651491
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123hVostt,
Он же сказал ef. Значит логично что база не при делах))))

Ну хз

if(бла-бла-бла)...
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651495
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльТак же ведут себя уважаемые СУБД (oracle, DB2, Sybase и т.п.)почти.
В оракле можно делегировать часть прав или хранимку безопасную выдать только Иванову, но ты прав.
В трех звенке роли субд не используют (веб прложение)
В клиент сервере используют.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651522
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123КурдльТак же ведут себя уважаемые СУБД (oracle, DB2, Sybase и т.п.)почти.
В оракле можно делегировать часть прав или хранимку безопасную выдать только Иванову, но ты прав.
В трех звенке роли субд не используют (веб прложение)
В клиент сервере используют.
Ну если уж совсем отклониться от темы: набирающая популярность платформа Oracle Application Express предлагает для трехзвенки в том числе и вариант аутентификации средствами СУБД (прошу предыдущих ораторов не путать термины "разграничение доступа на уровне данных" и "управление доступом средствами БД").
Но это как я говорил и как Вы правильно поправили - требует выделения особых привилегий.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651526
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльskyANAПросто я не ясно выразился.

В самом SQL server есть Logins, Users, Server-Level Roles, Database-Level Roles, Application Roles:
https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/getting-started-with-database-engine-permissions

И вот я вангую, что Вы используете не их, а создали свои таблицы, где харните логины, пароли, членство в ролях и т.п.
Верно?
Ну Вы шаман!!! Угадать решение, которое выбирает 99% разработчиков - это бинго! :)
Не знаю последних фич MSSQL Server, но ранее для управления безопасностью (в т.ч. пользователями и ролями) было необходимо иметь права dbo. Так же ведут себя уважаемые СУБД (oracle, DB2, Sybase и т.п.). Кто ж дает технологической записи права dbo?..
Да Вы, я смотрю, весёлый парень: сами сначала подвергли под сомнения моё умение ванговать, а теперь ни капельки не удивляетесь, что я оказался прав

Короче вариант
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
public bool Delete(SomeEntity entity)
{
    if (!security.CanDelete(entity))
    {
        return false;
    }

    // ...
}


волне Вам подходит
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651531
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдльпрошу предыдущих ораторов не путать термины "разграничение доступа на уровне данных" и "управление доступом средствами БД"
А никто и не путает. Просто выразился не ясно и потом пояснил.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651536
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, вот статья, что гуглится на раз:
https://blogs.msdn.microsoft.com/mvpawardprogram/2016/02/09/row-level-security-in-entityframework-6-ef6/

Я так понял, что реализация через фильтры на уровне EF.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651545
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAКстати, вот статья, что гуглится на раз:
https://blogs.msdn.microsoft.com/mvpawardprogram/2016/02/09/row-level-security-in-entityframework-6-ef6/

Я так понял, что реализация через фильтры на уровне EF.
Спасибо! Это именно то, чего ждешь при обращении не форум! :)
Правда не всегда то, что гуглится - является истиной в последней инстанции.
Но раз Вы рекомендуете - то я с радостью воспользуюсь!
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651550
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльСпасибо! Это именно то, чего ждешь при обращении не форум! :)
Правда не всегда то, что гуглится - является истиной в последней инстанции.
Но раз Вы рекомендуете - то я с радостью воспользуюсь!

"Нагуглено для вас"
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651557
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,
Я в курсе что вы из APEX.
Если принять ваш термин технологический коннект за основу, то вы конечно знаете что оракл это там назвал Схема разбора.
Везде все по разному))).
В java не используют широко миграцию.
В шарпе налево и направо.
Если получится посадить identity на DBFirst - отпишитесь.
MS кругом проповедует CodeFirst, поэтому identity будет там сам создавать таблички в базе).
В оракле, apex, java - dbfirst.
Ну, и ещё, в АппСервер java имя таблички с юзверями можно указать в самом сервере.
В IIS такого пока вроде нет.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651559
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльskyANAКстати, вот статья, что гуглится на раз:
https://blogs.msdn.microsoft.com/mvpawardprogram/2016/02/09/row-level-security-in-entityframework-6-ef6/

Я так понял, что реализация через фильтры на уровне EF.
Спасибо! Это именно то, чего ждешь при обращении не форум! :)
Правда не всегда то, что гуглится - является истиной в последней инстанции.
Но раз Вы рекомендуете - то я с радостью воспользуюсь!
Да не за что.

Я рекомендую прочитать и попробовать.
Сам я EF не использую, но идея-то простая: добавить в каждый запрос ограничение по владельцу.
То есть ни UPDATE, ни DELETE просто ничего не сделают из-под другого пользователя.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651577
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAСам я EF не использую, но идея-то простая: добавить в каждый запрос ограничение по владельцу
Я, честно говоря, не являюсь фанатичным апологетом EF, как и любого другого ORM.
С удовольствием бы писал простые незатейливые SQL-запросы. Но ADO.NET делает этот процесс мучительным :(
Или Вы считаете, что теперь можно легко и непринужденно обращаться к БД, без всех этих классов соединений, ридеров и т.п.?
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651591
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльskyANAСам я EF не использую, но идея-то простая: добавить в каждый запрос ограничение по владельцу
Я, честно говоря, не являюсь фанатичным апологетом EF, как и любого другого ORM.
С удовольствием бы писал простые незатейливые SQL-запросы. Но ADO.NET делает этот процесс мучительным :(
Или Вы считаете, что теперь можно легко и непринужденно обращаться к БД, без всех этих классов соединений, ридеров и т.п.?EF тоже обращается к БД через классы ADO.NET, просто скрывает от Вас это.

Вы, собственно, тоже можете написать небольшую обёрточку и с удовольствием писать простые незатейливые SQL-запросы без всех этих классов соединений, ридеров и т.п.

Или взять что-то попроще EF, например Dapper.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39651620
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльС удовольствием бы писал простые незатейливые SQL-запросы. Но ADO.NET делает этот процесс мучительным :(
Или Вы считаете, что теперь можно легко и непринужденно обращаться к БД, без всех этих классов соединений, ридеров и т.п.?

Dapper. Но EF делает трекинг, что сильно сокращает количество кода, которое требуется писать для записи изменений в БД без ошибок на поздней стадии.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39652284
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас разбираю пример, любезно предоставленный мне ранее в этой теме.
Получаю исключение, вызванное кодом, который я не то, что не трогал - даже не видел (где-то в недрах EF).
Кто навскидку может сказать - куда копать?
Код: html
1.
2.
System.Data.Entity.Core.EntityCommandExecutionException: "An error occurred while executing the command definition. See the inner exception for details.
InvalidOperationException: Существует назначенный этой команде Command открытый DataReader, который требуется предварительно закрыть."


Повторяю: я использую EF и в ADO.NET своими грязными ручонками не лезу...
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39652293
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль
Код: html
1.
Существует назначенный этой команде Command открытый DataReader, который требуется предварительно закрыть."



Нельзя во время одной выполняемой операции с БД, делать другую. Исключение об этом.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39652312
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttНельзя во время одной выполняемой операции с БД, делать другую. Исключение об этом.
Видимо нельзя лезть в таблицу с изменениями, если не закрыта предыдущая транзакция.
А система параллелизма CLR об этом знает? Может собака порылась в асинхронности запроса?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
        [HttpPost]
        public async Task<ActionResult> Create([Required]string name)
        {
            if (ModelState.IsValid)
            {
                IdentityResult result
                    = await RoleManager.CreateAsync(new AppRole(name));

                if (result.Succeeded)
                {
                    return RedirectToAction("Index");
                }
                else
                {
                    AddErrorsFromResult(result);
                }
            }
            return View(name);
        }
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39652355
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,

что ещё за "система параллелизма CLR"?
Укажите в строке подключения MultipleActiveResultSets=True и будет Вам счастье
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39652365
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,
Два варианта.
Если бд поддерживает мультиРидер, то галку добавить.
Если не поддерживает, то добавить ххххх.ToList() в коде.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39652396
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAУкажите в строке подключения MultipleActiveResultSets=True и будет Вам счастье

Лучше этого не делать, так больше ошибок можно выловить при работе с данными, которые вот так будут скрыты, но проблему не решит. Если нужно получать за один запрос несколько наборов, это другое.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39652423
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Курдль,
Два варианта.
Если бд поддерживает мультиРидер, то галку добавить.
Если не поддерживает, то добавить ххххх.ToList() в коде.
1. Где галку добавить в MS SQL Server 2014?
2. Вариант с ToList() в качетве решения видел в сети, но я не могу вмешиваться в системные вызовы (он где-то в недрах Identity или Owin, а не в моем контроллере).


hVosttskyANAУкажите в строке подключения MultipleActiveResultSets=True и будет Вам счастье

Лучше этого не делать, так больше ошибок можно выловить при работе с данными, которые вот так будут скрыты, но проблему не решит. Если нужно получать за один запрос несколько наборов, это другое.
Вот блин :(
Я я это сделал и настало мне счастье. А оказывается надо ждать проблем :(
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39652436
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльЯ я это сделал и настало мне счастье. А оказывается надо ждать проблем :(

Та ради бога.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39652437
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Та ради бога.
Не, я не в претензии - просто не успел обрадоваться, как облом :(
А другие варианты по-вашему есть?
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39652440
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльhVosttТа ради бога.
Не, я не в претензии - просто не успел обрадоваться, как облом :(
А другие варианты по-вашему есть?

Разбираться в чём косяк. А косяк скорее всего в lazy, вам нужно освоить проекции.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39652445
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAУкажите в строке подключения MultipleActiveResultSets=True и будет Вам счастье

Лучше этого не делать, так больше ошибок можно выловить при работе с данными, которые вот так будут скрыты, но проблему не решит. Если нужно получать за один запрос несколько наборов, это другое.
Да не переживай ты так за него, нормально всё будет
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39653015
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Если получится посадить identity на DBFirst - отпишитесь.
Да лучше убейте меня об стену! :(
identity создает 5 таблиц, с ID-шниками типа GUID. Само в них пишет и читает в интересах security.
Можно, конечно, переопределить все необходимые методы, навесить перехватчики - но это без меня :(
И так Hello World занимает более 20 файлов, весит 35МБ и еле ворочается :(
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39653020
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,
)))
Да. Тут java, Oracl впереди MS.
И ничего руками писать не надо.
Но у MS круче Linq.))
Может в Core что получше...будет.
Проект опубликуешь?
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39653096
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльИ так Hello World занимает более 20 файлов, весит 35МБ и еле ворочается :(Compiling HelloWorld project.... 28 error(s) 116 warning(s)
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39653734
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Проект опубликуешь?
Проект про Identity, на котором я тренировался, складывается из кирпичей по ходу изучения примера:
https://professorweb.ru/my/ASP_NET/identity/level1/1_1.php
Его и публиковать не надо - можешь выбрать нужные куски и не трогать лишние (я, например, не стал геморроиться с Claims).
А проект, который я делаю опубликовать не могу - он может вывести на заказчика

Shocker.ProКурдльИ так Hello World занимает более 20 файлов, весит 35МБ и еле ворочается :(Compiling HelloWorld project.... 28 error(s) 116 warning(s)
Это какой пример столько ошибок дал? Я тоже сначала "добираю" всякие references, чтобы проект из примера хотя бы начал компиллиться.
А про 20 файлов - это я имел в виду только созданные вручную для Hello World, а если считать с библиотеками, которые для этого нужны - то их 328
Т.е. если мне надо всё это задеплоить на хостинг - мне надо тащить все эти 328 файлов(ну, за вычетом исходников)?!!
Это за границами добра и зла! :)
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39653750
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,

и почему так много файлов?
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39653764
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAКурдль,
и почему так много файлов?
Не знаю. Я сильно отстал от современнейших тенденций в ASP.NET MVC и наивно полагал, что сделаю легковесное и шустрое web-приложение.
Я разбирал пример с нуля, типа "Создайте пустой проект..."
Потом "установите с помощью NuGet следующие пакеты: Identity, Owin, ..." И понеслась! :)
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39653769
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльЯ сильно отстал от современнейших тенденцийчерез лет 5 тоже будет все по другому))).
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39653778
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдльв ASP.NET MVC и наивно полагал, что сделаю легковесное и шустрое web-приложение.

.NET и легковесное? no go
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39653779
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,

в MVC не бывает маленького простого приложения (с точки зрения набора нужных файлов) - это не консоль.
HelloWorld или простенький инет-магазин мало чем будут отличаться.

А в чем проблема? Когнитивный диссонанс или места на хостинговом сервере не хватает?
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39653815
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльskyANAКурдль,
и почему так много файлов?
Не знаю. Я сильно отстал от современнейших тенденций в ASP.NET MVC и наивно полагал, что сделаю легковесное и шустрое web-приложение.
Я разбирал пример с нуля, типа "Создайте пустой проект..."
Потом "установите с помощью NuGet следующие пакеты: Identity, Owin, ..." И понеслась! :)
Понятно

Понаставили много всего не понятно зачем. В студии есть возможность удалить не используемые сборки.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39654690
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Если получится посадить identity на DBFirst - отпишитесь
Получилось по рекомендации

Но там предложено создать две ConnectionString - одна для Entities, одна - для Identity
Мне кажется и я вроде даже читал на форумах, что с этим может возникнуть проблема при деплое на хостинге :(
Это так?
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39654706
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльПолучилось по рекомендации если не глючит с логином без прав на DML, то и замечательно.
Значит удалось подсунуть ему таблички созданные не им, а админом например.
А про деплой ничего такого не слышал. Смотря какой хостинг.
Может же быть полностью твоя виртуальная машина.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39654734
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123если не глючит с логином без прав на DML, то и замечательно..
А про деплой ничего такого не слышал. Смотря какой хостинг.
Может же быть полностью твоя виртуальная машина.
Я читал, что права dbo для Identity необходимы. Но меня это не парит.
Я подсунул ему БД, в которых уже созданы таблицы аналогичные тем, что он создает.
Он их обнюхал и принял, как родных.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39654759
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльЯ читал, что права dbo для Identity необходимы. Но меня это не парит.я думал ты это тоже проверил.
Меня парит, т.к. админ може не пустить с такими правами.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39654906
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123я думал ты это тоже проверил.
Меня парит, т.к. админ может не пустить с такими правами.
Это проверить не трудно. Доберусь домой - заведу нового пользака БД, не дам ему прав dbo и подсуну в строку подключения Identity.
Но мне кажется, что Identity этого и не поймет, пока не попытается исполнить DDL. А зачем его исполнять, раз таблицы уже созданы?..
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39655175
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,

"Факир был пьян и факинг не удался".
Запросы от Identity к базе содержат явный префикс схемы dbo. Наверное это можно где-то выявить и переопределить.
Но я что-то подзадолбался с экспериментами - попробую собрать в кучку всё, что успел наэкспериментировать.
И да: создатели Code First - сволочи! :(
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39655214
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,

все кто поменял динамику на статику - сволочи (но, они создали миллионные армии "программистов" - народу есть где поработать)
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39655316
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльИ да: создатели Code First - сволочи! :(MS как всегда думает что все кругом его безраздельно.
А другие вендоры за частную собственнось).
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39655354
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,

разграничение доступа придумали как делать, или нет ещё?
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39655356
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльИ да: создатели Code First - сволочи! :(

Сделай это первой строчкой в резюме.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39655381
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомКурдльИ да: создатели Code First - сволочи! :(

Сделай это первой строчкой в резюме.
Вот первое попавшееся требование:
авторЗнание ORM Hibernate, понимание подходов code-first, db-first
Так что знать и уметь обязан оба. А любить .....))))
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39655636
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

все поголовно забыли про Model First :)
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39655643
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosPetro123,

все поголовно забыли про Model First :)
Не забыли.
Это ты с DataSet там так и остался.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39655653
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ViPRosPetro123,

все поголовно забыли про Model First :)
Не забыли.
Это ты с DataSet там так и остался.
Ты думаешь что люди "проехали" DataSet?

Да они просто ее не освоили, как и СУБД :)
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39655677
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,
Кто не освоил, они или ты, сам разбирайся.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39655758
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Конечно сам, не на бота ж безмозглого буду надеяться.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39655767
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosPetro123,

все поголовно забыли про Model First :)

У нас есть проектик на Model First в EF, для ЖКХ, ведёт отдельная небольшая команда.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39655772
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosPetro123,
Конечно сам, не на бота ж безмозглого буду надеяться.
Ты как та собака, все понимает, но ничего путного сказать не может.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39655774
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо признать, что у CodeFirst - абстракция течет.

То есть - вся эта система может свалиться в такое состояние, откуда просто так "сама" выбраться не сможет.

А это очень bad.

Хотя MS чихал на это конечно.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39655794
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомНадо признать, что у CodeFirst - абстракция течет.

То есть - вся эта система может свалиться в такое состояние, откуда просто так "сама" выбраться не сможет.

А это очень bad.

Хотя MS чихал на это конечно.

Пример можешь привести? Текучести абстракции?
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39655799
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttПример можешь привести? Текучести абстракции?абстрактно?
Накат версии на работающей базе с работающими сотрудниками.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39655814
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttПример можешь привести? Текучести абстракции?

EF при изменениях/откате миграции начинает пытаться переименовать объекты, и будучи не в состоянии дать какие-то уникальные имена - получает ошибку.

Банально надо лезть в файл миграции и расставлять инструкции в нужном порядке.

Но это ладно.

Допустим есть сущность "клиент", и у него есть коллекции, скажем, "документы","адреса","заказы".

И в ходе рефакторинга - мы убираем свойство "заказы".
А потом опять пытаемся его же добавить.

И я не помню, что начинает происходить.

То ли EF сломается при добавлении связующих таблиц.
То ли EF замапит связь "не на ту таблицу".

В общем - кончается тем, что надо "лезть" во fluent и мапить на таблицы там.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39655829
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомEF при изменениях/откате миграции начинает пытаться переименовать объекты, и будучи не в состоянии дать какие-то уникальные имена - получает ошибку.

Банально надо лезть в файл миграции и расставлять инструкции в нужном порядке.

Это не пример текучести абстракции, стоит этого ожидать, даже если это будет человек, который должен будет искать ответ на вопрос: а что делать с именами?

Агнец за бортомИ в ходе рефакторинга - мы убираем свойство "заказы".
А потом опять пытаемся его же добавить.

И я не помню, что начинает происходить.

То ли EF сломается при добавлении связующих таблиц.
То ли EF замапит связь "не на ту таблицу".

Опять таки, EF не является искусственным интеллектом, и коллизии разрешить не в состоянии точно так же, как это не может сделать Git, который при конфликтующих изменениях просит человека выполнить правильное слияние.

Чтобы такого не было, надо создавать миграцию после каждого качественного изменения, в котором не будет конфликтов.

Агнец за бортомВ общем - кончается тем, что надо "лезть" во fluent и мапить на таблицы там.

Нужно использовать классы конфигурации маппинга, для каждого Entity нужно создавать класс конфигурации, даже если Entity простой. Тогда не нужно лезть в какой-то одному Богу известный fluent.

Да, генератор миграции не идеален, но лишь в том отношении, что некоторые вещи разрешить программным путём невозможно, так как неизвестно, чего хотел программист, если это не очевидно из контекста.

Абстракции, тут как бы не при чём.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39655833
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttЭто не пример текучести абстракции, стоит этого ожидать,

Как по мне - я не должен лазить в файл миграций. Тем более - еще его и править. Поэтому и течет.

И при чем тут имена - он (генератор) пытается удалить объект по имени, которого еще у объекта нет. (Инструкция по переименованию находится ниже).
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39655835
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttкак это не может сделать Git, который при конфликтующих изменениях

У Git-а конфликты все же находятся на том же уровне. Поэтому - тут вопросов нет.

А мои POCO - однозначны и согласованы. А EF "справится" с ними без вмешательства человека не может.

Искусственный интеллект или нет, и насколько это плохо - не мне судить.

Я считаю, что MS могла бы и получше сработать.

Для серьезного продакшена, ИМХО, DB First будет получше.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39655836
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttТогда не нужно лезть в какой-то одному Богу известный fluent.

В смысле? Разве в конфигах используется не fluent?
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39655844
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомhVosttТогда не нужно лезть в какой-то одному Богу известный fluent.

В смысле? Разве в конфигах используется не fluent?
Прямо в коде наверно у них.
Есть и такой маппинг.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39655862
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомКак по мне - я не должен лазить в файл миграций. Тем более - еще его и править. Поэтому и течет.

Миграции к абстракциям как относятся? Если хочешь вообще жить без миграций и соответствующих проблем, ноу проблем, переходи на Raven, или MongoDB. Никаких миграций :)

Агнец за бортомИ при чем тут имена - он (генератор) пытается удалить объект по имени, которого еще у объекта нет. (Инструкция по переименованию находится ниже).

Честно, не сталкивался с таким. Хотя в одном проекте у нас около 3 тыс. миграций.

Агнец за бортомА мои POCO - однозначны и согласованы. А EF "справится" с ними без вмешательства человека не может.

Ну конечно не может.

Было, допустим, у тебя поле Address. Потом ты его переименовываешь в PostAddress и добавляешь LegalAddress, считая, что EF должен догадаться, что PostAddress это бывший Address.

Агнец за бортомЯ считаю, что MS могла бы и получше сработать.

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

Агнец за бортомВ смысле? Разве в конфигах используется не fluent?

Ну да, флюент. Но только применительно к своей модели.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39655995
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAКурдль,

разграничение доступа придумали как делать, или нет ещё?

Я думаю, что понял, как его реализовать. Но это ушло в низший приоритет.
Я не могу заставить приложение заработать на хостинге :(
Как я опасался - возникли сложности с двумя строками подключения.
Одна (EF) все таблицы читает и пишет исправно.
А другая, которая работает на Identity, при попытке залогиниться:
Код: html
1.
2.
Error.
An error occurred while processing your request.


возможно я просто подставляю неправильные параметры в строку соединения, которую родил сам Identity и которая успешно работала в локале. Хостинг reg.ru (может кто сталкивался)
Код: xml
1.
2.
3.
4.
  <connectionStrings>
    <add name="MyEntities" connectionString="metadata=res://*/DAL.MyModel.csdl|res://*/DAL.MyModel.ssdl|res://*/DAL.MyModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=localhost;initial catalog=ПРЕФИКС_БД;persist security info=True;user id=ПРЕФИКС_sa;password=ПАРОЛЬ;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
    <add name="MyIdentity" connectionString="Data Source=localhost;database=ПРЕФИКС_БД;persist security info=True;user id=ПРЕФИКС_sa;password=ПАРОЛЬ;" providerName="System.Data.SqlClient" />
  </connectionStrings>
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39655998
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты используешь только хоcтинг или свой VDS?
Если первое - то откуда там возьмется sqlserver на localhost?
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39656000
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльА другая, которая работает на Identity, при попытке залогиниться:
Код: html
1.
2.
Error.
An error occurred while processing your request.

смотри реальную ошибку в коллстеке
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39656076
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProТы используешь только хоcтинг или свой VDS?
Если первое - то откуда там возьмется sqlserver на localhost?
Если посмотрите на первую строку подключения, то получается, что установлен.
EF же читает и пишет исправно по словам ТСа
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39656078
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,

покажете полную информацию об ошибке, что происходит.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39656085
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProТы используешь только хоcтинг или свой VDS?
Если первое - то откуда там возьмется sqlserver на localhost?

Только хостинг. Про localhost в строке подключения я прочел в анналах инструкций самого хостинга.
К тому же, первая строка подключения ведь как-то нашла его?..

skyANAКурдль,

покажете полную информацию об ошибке, что происходит.
Я пока не вкурил, как отыскать информацию об ошибке.
Хостинг предоставляет логи, в которых только http-запросы.
Однако пока не настроил первую Connection String - ту же ошибку получал при попытке любого обращения к БД.
Сейчас получаю только при попытке обратиться за информацией identity.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39656089
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,

а в браузере что Вам отображается?

И явно надо озаботиться логированием в приложении
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39656102
Lessyp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльКак я опасался - возникли сложности с двумя строками подключения.
Одна (EF) все таблицы читает и пишет исправно.
А другая, которая работает на Identity, при попытке залогиниться:

не надо так делать. Иметь отдельную базу для пользователей только в угоду майкрософтовскому Identity - это адское решение. Ихнее Identity на EF вообще не надо юзать за пределами курсовых и хелло ворлдов
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39656106
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LessypКурдльКак я опасался - возникли сложности с двумя строками подключения.
Одна (EF) все таблицы читает и пишет исправно.
А другая, которая работает на Identity, при попытке залогиниться:

не надо так делать. Иметь отдельную базу для пользователей только в угоду майкрософтовскому Identity - это адское решение. Ихнее Identity на EF вообще не надо юзать за пределами курсовых и хелло ворлдов
У него не отдельная база, а две строки подключения к одной базе.

И по чесноку отдельная база для пользователей - это не адское решение, а тупо отдельный сервис для аутентификации, единый для всех остальных сервисов в системе.
Но это конечно не вариант ТСа
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39656108
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LessypИхнее Identity на EF вообще не надо юзать за пределами курсовых и хелло ворлдов
А конструктивная критика и предложения того, что же использовать, будут?
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39656109
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAа тупо отдельный сервис для аутентификации,

Вопросов бы не было, будь это сервис. А так - это отдельная база.

И потом, поделись рецептом, как ты пробрасываешь юзера из базы идентити в "основную"? Костылик-gear?
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39656110
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльЯ пока не вкурил, как отыскать информацию об ошибке.ну пока не настроил нормальное собственное логирование - отлови глобальную ошибку и выведи ее куда-нить вместе с коллстеком
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39656111
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомskyANAа тупо отдельный сервис для аутентификации,

Вопросов бы не было, будь это сервис. А так - это отдельная база.Где ты увидел, или что называешь отдельной базой?

Я вижу ровно одну:
Код: xml
1.
data source=localhost;initial catalog=ПРЕФИКС_БД
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39656113
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну раз провайдер сам предоставляет доступ к sql-серверу через localhost - ну ок.
Может он ограничивает количество приложений для подключения БД, и для второй строки тоже надо прописать ;App=EntityFramework?
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39656117
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАгнец за бортомпропущено...


Вопросов бы не было, будь это сервис. А так - это отдельная база.Где ты увидел, или что называешь отдельной базой?

Я вижу ровно одну:
Код: xml
1.
data source=localhost;initial catalog=ПРЕФИКС_БД



Не понимаю, о чём ты. При установке пустого решения с аутентификацией - база с юзерами прибивается гвоздями к решению.

Ты предлагаешь продолжать разработку в ней? Это как-то не очень straight forward.

Любой тутор - приведет тебя к двум базам.

И куда бы ты не смотрел и как бы ты базы не считал - это нифига не

skyANAтупо отдельный сервис для аутентификации
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39656123
Lessyp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Майкрософтовский Identity - это показательное решение для обьяснения основ как все примерно должно работать и также для hello world проектов где самому писать ничего не требуется. Всерьез использовать это как часть коммерческого проекта, приколотив гвоздями к остальной системе и обозвав "отдельным сервисом" - это верх непрофессионализма. За такое увольнять надо
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39656126
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомЛюбой тутор - приведет тебя к двум базам.Не вижу никакой проблемы использовать стандартное Identity-хранилище в основной базе, если они не пересекаются по названиям таблиц.

Впрочем, также не вижу никакой проблемы использовать собственную реализацию хранилища пользователей для Identity - там ничего сложного
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39656127
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомskyANAпропущено...
Где ты увидел, или что называешь отдельной базой?

Я вижу ровно одну:
Код: xml
1.
data source=localhost;initial catalog=ПРЕФИКС_БД




Не понимаю, о чём ты. При установке пустого решения с аутентификацией - база с юзерами прибивается гвоздями к решению.

Ты предлагаешь продолжать разработку в ней? Это как-то не очень straight forward.

Любой тутор - приведет тебя к двум базам.Ты бы так не палился на том, что топик не читал.
ТС выше писал, что настроил Identity на свою базу.
Так что разработка ведётся в ней одной и эта не та, о которой ты думаешь

Агнец за бортомИ куда бы ты не смотрел и как бы ты базы не считал - это нифига не

skyANAтупо отдельный сервис для аутентификацииЯ и написал, цитирую: "Но это конечно не вариант ТСа".
Чукча не читатель?
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39656132
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LessypМайкрософтовский Identity - это показательное решение для обьяснения основ как все примерно должно работать и также для hello world проектов где самому писать ничего не требуется. Всерьез использовать это как часть коммерческого проекта, приколотив гвоздями к остальной системе и обозвав "отдельным сервисом" - это верх непрофессионализма. За такое увольнять надо
А Вы не обзывайте Identity "отдельным сервисом", зачем?

Рассмотрим Windows аутентификацию: пользователи отдельно, а в приложении у нас context.User.Identity .

Что не так в этом решении?
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39656135
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LessypМайкрософтовский Identity - это показательное решение для обьяснения основ как все примерно должно работать и также для hello world проектов где самому писать ничего не требуется. Всерьез использовать это как часть коммерческого проекта, приколотив гвоздями к остальной системе и обозвав "отдельным сервисом" - это верх непрофессионализма. За такое увольнять надоинтересное мнение).
Правда аргументов маловато
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39656138
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомЛюбой тутор - приведет тебя к двум базам.CodeFirst в другом топике.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39656140
Lessyp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAРассмотрим Windows аутентификацию: пользователи отдельно, а в приложении у нас context.User.Identity .

Что не так в этом решении?
пользователи там не отдельно, их данные лишь предоставляются системой для избежания ввода паролей по 10 раз, они (либо роли) точно также хранятся в базе
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39656143
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LessypМайкрософтовский Identity - это показательное решение для обьяснения основ как все примерно должно работать и также для hello world проектов где самому писать ничего не требуется. Всерьез использовать это как часть коммерческого проекта, приколотив гвоздями к остальной системе и обозвав "отдельным сервисом" - это верх непрофессионализма. За такое увольнять надо
Да?.. Чего только не узнаешь на этом форуме :( Мне Identity здесь присоветовали. Я на него старое решение переписал, которое по-чесноку было реализовано на Membership-стве.
Но увольнять меня не надо! Пожалуйста! Это любительская работа - наравне с хобби :)

Итак, со строкой подключения разобрался (вверху неправильная, внизу - правильная):
Код: xml
1.
2.
<add name="MyIdentity" connectionString="Data Source=localhost;database=ПРЕФИКС_БД;user id=ПРЕФИКС_sa;password=ПАРОЛЬ;persist security info=True;" providerName="System.Data.SqlClient" />
<add name="MyIdentity" connectionString="Data Source=localhost;Initial Catalog=ПРЕФИКС_БД;User ID=ПРЕФИКС_sa;Password=ПАРОЛЬ;" providerName="System.Data.SqlClient" />



Теперь возникает новая ошибка - при формировании токена на email для двойной аутентификации, но её я скорее всего знаю, как побороть.

P.S. Коллеги! Я тут свои меркантильные проблемы решить пытаюсь, а вы холивар затеяли :)
Я конечно рад, что пробудил бурление умов, но как бы не выплеснуть ребенка с водой...
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39656148
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдльа вы холивар затеяли :)вопросы прова и коннектов в отдельный топик пиши))
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39656158
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LessypМайкрософтовский Identity - это показательное решение для обьяснения основ как все примерно должно работать и также для hello world проектов где самому писать ничего не требуется. Всерьез использовать это как часть коммерческого проекта, приколотив гвоздями к остальной системе и обозвав "отдельным сервисом" - это верх непрофессионализма. За такое увольнять надо

Что вам мешает использовать Identity в коммерческом проекте? А то мы рискуем увидить дно профессионализма, что-то такое сказать, без возможности как-то объяснить.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39656457
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомКурдльв ASP.NET MVC и наивно полагал, что сделаю легковесное и шустрое web-приложение.

.NET и легковесное? no go
no way - без шансов.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39656669
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buredАгнец за бортомпропущено...


.NET и легковесное? no go
no way - без шансов.

Это вы еще оракловых сайтов не видели :/
Например, знаменитый Ask Tom
Попробуйте в браузере проинспектировать какой-нить маленький элемент и гляньте - сколько у него "обвязки".
Правда такие приложения создаются в разы быстрее, чем на любой другой технологии, работают надежно и выглядят прекрасно.
Я б не задумываясь делал эту задачу на oracle APEX, если б не дорогой хостинг...
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39656716
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдльи выглядят прекрасно.нет.
На шарпе будет круче.
Там огранчения фреймворка и интерфейс специфическй.
Крупный, как для лиц с ограниченными возможностями.
Но мы же не о сайте визитке. Так что все имхо индивидуально.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39656812
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Ладно, пока рано плакаться, что я не ту технологию выбрал.
Вот завтра, если не поборю очередную багу...
Она такая: не могу отправить письмо с токеном подтверждения при регистрации.
Код: html
1.
Удаленный сертификат недействителен согласно результатам проверки подлинности.


Я вообще-то ни разу не просил никаких сертификатов. Просто исполнял метод
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
        public Task SendAsync(IdentityMessage message)
        {
            // настройка логина, пароля отправителя
            var from = "noreply@xxx.ru";
            var pass = "*******";

            // адрес и порт smtp-сервера, с которого мы и будем отправлять письмо
            //SmtpClient client = new SmtpClient("smtp.yandex.ru", 465 или 25 или 587);
            SmtpClient client = new SmtpClient("mail.ххх.ru", 25);

            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            client.UseDefaultCredentials = false;
            client.Credentials = new System.Net.NetworkCredential(from, pass);
            client.EnableSsl = true;

            // создаем письмо: message.Destination - адрес получателя
            var mail = new MailMessage(from, message.Destination);
            mail.Subject = message.Subject;
            mail.Body = message.Body;
            mail.IsBodyHtml = true;

            return client.SendMailAsync(mail);
        }

На сайте SSL не прописывал, почта на том же хостинге и тоже я никаких особых настроек не производил - все по умолчанию.
Этот же метод с прописанной моей почтой на яндексе нормально отрабатывает (с домашнего компа).
Куда копать?..
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39656821
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль
Код: c#
1.
client.EnableSsl = true;
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39656905
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Курдль
Код: c#
1.
client.EnableSsl = true;


Вот же блин! Точно!
Все со скрипом заработало, спасибо.
Почему-то выдает безымянную ошибку, но пользователя регистрирует....
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39657044
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдльработают надежно
Условно. Если что-то в кишках сломается, то придётся погрузиться в черную магию оракла.


Курдльи выглядят прекрасно.
Ровно настолько, насколько решил "вон-тот-вот-парень".


Курдльделал эту задачу на oracle APEX
Если заказчик в адеквате, то он сразу поставит табу на какие-то уникальные решения, которые потом сможет поддерживать очень ограниченное количество разработчиков.

P.S. Если что - на APEX-е писал. Нравилось. Очень высокий уровень абстракции (над механизмами pure веб-а), но даже тогда (2005) было очевидно, что далеко на таком web coast customs далеко не уедешь.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39657079
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомУсловно. Если что-то в кишках сломается, то придётся погрузиться в черную магию оракла.

Ну... в кишках оракла давно уже ничего не ломается. А АПЕКС тоже не новый продукт. Уже сотни крупняков в мире взяли его за пром. стандарт.

Агнец за бортомРовно настолько, насколько решил "вон-тот-вот-парень".

Не знаю, что Вы имеете в виду. АПЕКС предоставляет супер-быстрый интерфейс для разработки форм на основе запросов к БД.
Но и дает полную свободу в верстке, использовании js, в нем за стандарт принят jQuery и многие другие решения.
А что нужно большинству бизнес-заказчиков? Красивый и легкий доступ к данным + CRUD. Какая из технологий сравнится по таким интерфейсам, как Interactive Report, Interactive Grid (где можно, как в Экселе, вводить данные прямо в ячейки) Modal Dialog (который по сути - iFrame)?

Агнец за бортомЕсли заказчик в адеквате, то он сразу поставит табу на какие-то уникальные решения, которые потом сможет поддерживать очень ограниченное количество разработчиков.

Ха! Я набираю студентов предпоследнего курса и они через месяц-два реализуют прекрасные приложения! Не нужна прокладка в виде дорогостоящих J2E, JSE специалистов (которые, как правило, не дружат с БД и требуют отдельного ораклиста для поддержки).
И, кстати, решение APEX Embedded + oracle XE является бесплатным, но дает нехилые возможности для малых и средних предприятий!
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39657141
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Друзья!
Апекс это как access.
Фреймворк платформа для быстрого создания сайта.
Ну нельзя его сравнивать с платформой ЯП шарп и студией.
И как у Access'a у него нет конкурентов).
Давайте про шарп. Тут делают фреймворки, а не используют их)).
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39657170
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдльв кишках оракла давно уже ничего не ломается.

То-то тишина в профильном форуме.


КурдльУже сотни крупняков в мире взяли его за пром. стандарт.
У нас отдел ораклистов. Они не знают, что такое APEX.


Курдльв нем за стандарт принят jQuery и многие другие решения.
А вот у меня нет jQuery как класса. Что такое "многие другие".. Ладно.


КурдльКакая из технологий сравнится по таким интерфейсам
Курдль(где можно, как в Экселе
Эксель.


Курдльoracle XE является бесплатным, но дает нехилые возможности для малых и средних предприятий!

Это БД, которая 4 гига по объему, 1 гиг оперативы, и одно ядро? Привязка к ORACLE?
Средние предприятия - это ЧП Мамедов что ли?

Курдльони через месяц-два реализуют прекрасные приложения!
Ничего при этом не умея, кроме SQL-запросов к базе (чем APEX и силен)

Шаг влево/вправо - и уже интеграция с APEX-ом станет вровень по трудоемкости с разработкой на "стандартных" web технологиях.

ИМХО, Apex, это "вещь в себе". Если предприятие выбирает её как технологическую платформу, то ок.
Как 1С.

Но до 1С апексу - как до Андромеды.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39657188
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортом,
Придется поддержать апекс)).
Его нельзя сравнивать с 1С.
В 1С нету веб.
Самое главное, в нише апекса нет конкурентов.
Про ваш отдел, то формс там наверняка знают)))
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39657219
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Агнец за бортом,
Придется поддержать апекс)).
Его нельзя сравнивать с 1С.
В 1С нету веб.
Вылазим из танка: Веб-клиент - 1С:Предприятие 8 .
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39657236
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123В 1С нету веб

Чего там только нет.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39657269
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомPetro123В 1С нету веб

Чего там только нет.я тебе практику говорю. А не рекламные постеры).
У теоретиков веб интерфейс есть. И даже купят.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39657309
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123я тебе практику говорю.

Ты не того слушателя выбрал.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39657314
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортом,
"А баба Яга против?" ))
Я не сомневаюсь, что на апекс писал? Вот и ты не сомневайся что я на 1С)).
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39657353
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123 Вот и ты не сомневайся что я на 1С)).

1C - это тёмный период моей жизни.
Розница на 250 магазов с 1С на бекенде и фронте.
Крупный мелкооптовый дистр 24*7
Транспортная логистика 24*7

Сомневаюсь не в тебе, а в том что ты мне расскажешь про 1С что-то, чего я не знаю.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39657363
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортом,
Всё. Убил! )))
ОК. Ты в теме.
Удачи!
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39657885
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вчера говорил, что рано отчаиваться и надо во всем разобраться.
Так вот сегодня я таки решил отчаяться и отказаться от Identity.
Ну не понимаю я, по какой закономерности он то отправляет письма, то выдает ошибку.
То принимает учетку, то вдруг сообщает, что такая уже зарегистрирована (хотя можно набрать вместо логина любую белиберду, которой заведомо нет в БД). :(
Придется, как и положено прилежному онанисту, всё делать вручную...
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39657906
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,
Не понял, причем к письмам identity.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39657911
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Упс. Счас глянул, ms что только туда не засунуло))
авторОпределение расширенной учетной записи пользователя, включая электронную почту и контактную информацию
Двухфакторная аутентификация через электронную почту или SMS-сообщения, функционально аналогичные тем, которые используются Google, Microsoft и другими
Подтверждение аккаунта по электронной почте
Административное управление пользователями и ролями
Блокировка учетной записи в ответ на недопустимые попытки входа в систему
Security Token Provider для восстановления токена безопасности пользователя в ответ на изменения параметров безопасности.
Улучшена поддержка социальных входов
Легкая интеграция авторизации на основе претензий
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39657912
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Курдль,
Не понял, причем к письмам identity.
Two-Factor Authentication
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39657923
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,
Я бы не отказывался так легко.
Мыло можно и руками обработать))).
А вот базовые вещи оставить за фреймворком. Раз IIS это не умеет.
Маппинг,защита урл. Контекст ролей. Менеджер ролей.
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39658160
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльЯ вчера говорил, что рано отчаиваться и надо во всем разобраться.
Так вот сегодня я таки решил отчаяться и отказаться от Identity.
Ну не понимаю я, по какой закономерности он то отправляет письма, то выдает ошибку.
То принимает учетку, то вдруг сообщает, что такая уже зарегистрирована (хотя можно набрать вместо логина любую белиберду, которой заведомо нет в БД). :(
Придется, как и положено прилежному онанисту, всё делать вручную...
Что вручную-то делать собрались?
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39658165
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЧто вручную-то делать собрались?
Реализовывать все необходимые методы MembershipProvider
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39658190
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльskyANAЧто вручную-то делать собрались?
Реализовывать все необходимые методы MembershipProvider
А разграничение доступа как потом будете делать?
...
Рейтинг: 0 / 0
Разграничение доступа на уровне записей. ASP.NET MVC, EF
    #39658336
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAА разграничение доступа как потом будете делать?
А какая разница, будет ли у меня в контексте информация о пользователе из Identity или из Membership?
...
Рейтинг: 0 / 0
160 сообщений из 160, показаны все 7 страниц
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Разграничение доступа на уровне записей. ASP.NET MVC, EF
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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