Моделирование asp.net основной идентичности доступа пользователя - PullRequest
0 голосов
/ 06 октября 2018

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

Например, давайте подумаем, что у нас есть 10 разных магазинов.

Я хочу иметь возможность:

Иметь несколько типов пользователей, например, продавца и покупателя.

Как я могу настроить: Первый покупатель должен иметь доступ к данным для магазина 1, 2 и 3. Второй покупатель имеет доступ к данным для магазина 3, 4 и 5.
Третий покупатель имеет доступ к данным для магазина 6, 7, 8 и 9 Первый продавец, имеющий доступ к инвентарю магазина 3, и4.

Может ли кто-нибудь указать мне правильное направление?

Альберто

1 Ответ

0 голосов
/ 06 октября 2018

В AspNet Core Identity не предусмотрены способы обеспечения доступа к конкретным данным, например к конкретному хранилищу, что означает, что вы должны реализовать это самостоятельно.Однако вы можете описать предполагаемый доступ в моделях идентификации:

Стандартные модели ASP.NET Core Identity содержат модель заявки , в которой вы можете определить свои собственные типы заявки, например роль и магазин .Затем вы можете связать эти утверждения со своими пользователями:

User 1 Claims:
    "role": "buyer"
    "store": "1"
    "store": "2"
    "store": "3"
User 2 Claims:
    "role": "salesman"
    "store": "3"
    "store": "4"

(Это упрощено, но может быть достаточно для вас. Одно ограничение в этой конкретной модели состоит в том, что пользователь может быть назначен в магазин только дляВСЕ его роли. Если пользователь является покупателем для магазина 1, а продавец для магазина 2, вы сталкиваетесь с неоднозначностью того, к каким данным он имеет доступ. Если это требование, то вам придется указать роль для магазина в другом типе заявки)

Это не обеспечивает доступа к данным.Вам нужно придумать свои собственные фильтры при выполнении любых запросов к вашим постоянным данным, будь то в SQL, Mongo, Redis или где-либо еще.

...