Arhn - архитектура программирования

Интеграция двух разных пользовательских баз данных в одного провайдера членства ASP.NET MVC?

Я работаю над проектом, который должен аутентифицировать пользователей на основе записей в двух разных базах данных. Все администраторы хранятся локально и требуют полной функциональности для управления своими учетными записями (сброс пароля и т. д.). Обычные пользователи аутентифицируются в другой базе данных, используемой другим веб-приложением, поэтому мне нужно только проверить правильность их учетных данных.

После ввода их имени пользователя/пароля на экране входа в систему мое приложение должно проверить, существуют ли они в таблице локальных администраторов. Если это так, им дается роль «администратора» и предоставляется доступ. Если нет, он должен проверить таблицу пользователей другого приложения и в случае успеха дать им роль «пользователь».

Проект представляет собой большую онлайн-книгу. Пользователям просто нужна аутентификация, чтобы просматривать его, оценивать разделы и добавлять страницы в закладки. Данные рейтинга/закладки будут связаны с их уникальным идентификатором. Все управление пользователями осуществляется во внешнем приложении. Администраторы, однако, смогут только просматривать/редактировать страницы и НЕ будут оценивать/добавлять закладки. Их учетные записи будут управляться с помощью этой административной области.

Каков наилучший способ сделать это в приложении .NET MVC? Под «этим» я подразумеваю интеграцию системы входа/аутентификации с обоими и назначение им роли в зависимости от того, какая база данных подтверждает их учетные данные.

Заранее спасибо!


  • ТАКЖЕ: посетителям должна быть назначена роль «гость». Мне просто нужно знать лучший способ (который соответствует лучшим практикам .NET MVC) проверить обе базы данных и назначить им роль, в зависимости от того, какая база данных их проверяет. 19.08.2009

Ответы:


1

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

Когда у вас есть логика в пользовательском поставщике членства, вам просто нужно использовать FormsAuthentication с вашим приложением MVC, для которого существует множество руководств, вот коротко.

Единственный совет, который я бы добавил, относящийся к MVC, заключается в том, что вы должны попытаться сохранить свою логику для решений представления в своих контроллерах. Заманчиво поместить что-то вроде «<% if user == admin then renderPartial(this) else renderPartial(that) %>» в ваше представление, но, на мой взгляд, это нарушает принципы MVC. Гораздо лучше использовать ViewModels или заполнять ViewData в вашем контроллере.

18.08.2009
  • Спасибо! Вторая ссылка очень помогла. Я думаю, что могу обойти поставщика членства для аутентификации и использовать его только для управления администраторами. 19.08.2009
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..