Где находится база данных с индивидуальными учетными записями в службе приложений веб-приложения. NET Core 3.0? - PullRequest
1 голос
/ 18 марта 2020

Я занимаюсь разработкой. NET Базового веб-приложения с Microsoft Identity. Я развернул его на портале Azure в качестве службы приложений. Мне нужно взглянуть на пользователей, которых я зарегистрировал в Microsoft Identity, возможно, удалив некоторых из них или изменив их, но я не знаю, где находится база данных в облаке. Кто-нибудь может помочь?

Редактировать: Это метод ConfigureServices ():

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext<ApplicationDbContext>(options =>
                options.UseSqlite(
                    Configuration.GetConnectionString("DefaultConnection")));

            services.AddDefaultIdentity<ApplicationUser>()
                .AddEntityFrameworkStores<ApplicationDbContext>();

            services.AddIdentityServer()
                .AddApiAuthorization<ApplicationUser, ApplicationDbContext>();

            services.AddAuthentication()
                .AddIdentityServerJwt();

            services.AddControllersWithViews();
            services.AddRazorPages();

            services.AddSignalR().AddAzureSignalR(Configuration["SignalRConnectionString"]);

            // In production, the React files will be served from this directory
            services.AddSpaStaticFiles(configuration =>
            {
                configuration.RootPath = "ClientApp/build";
            });

            // For scaffolding:
            services.AddMvc().AddControllersAsServices();

            var task = ConnectToEventHub();
            services.AddApplicationInsightsTelemetry();
        }

Редактировать2: Я понял, что моя проблема в том, что эти пользователи каким-то образом хранятся в базе данных, которая хранится в файле с именем app.db. Этот файл находится в каталоге root веб-приложения. Теперь это может сработать, но чтобы сделать его гораздо более удобным для работы в производственной среде, мой начальник попросил меня переместить эту базу данных в Azure SQL базу данных - или, по сути, в самую простую и дешевую базу данных, которую можно использовать против моей веб-приложение (которое размещено в azure в качестве службы приложения). Cosmos DB слишком дорог, чтобы хранить только одну пользовательскую таблицу. Кто-нибудь получил какие-либо советы о том, как перейти с app.db на что-то вроде Azure SQL База данных?

Ответы [ 2 ]

1 голос
/ 18 марта 2020

СТАРЫЙ ОТВЕТ, связанный с Microsoft Identity, а не с индивидуальными учетными записями

Просто найдите Azure Active Directory в Azure Portal. Вы можете получить к нему доступ через меню гамбургера или просто набрать Azure Active Directory в поле поиска:

Azure Portal menu

В Azure Active Directory выберите «Пользователи» из меню в разделе «Управление». Есть ваши пользователи.

В качестве альтернативы вы можете использовать Azure CLI для запроса пользователей в AAD. Самый простой способ - использовать Cloud Shell непосредственно на портале Azure, поскольку он уже аутентифицирован на Azure:

enter image description here

Кроме того, убедитесь, что Идентификатор AAD Tenant ID совпадает с идентификатором, который вы используете в настройках приложения.

Ваша служба приложений может быть развернута в подписке Azure, подключенной к другой AAD.

Так, например, Я могу создать Службу приложений в своей частной подписке, но я хочу позволить сотрудникам моей компании войти в систему -> Я регистрирую свое приложение в AAD своей компании.

0 голосов
/ 18 марта 2020

Прежде всего, в зависимости от класса запуска, вы используете индивидуальные учетные записи (не Microsoft Identity, а просто другое имя для Azure Active Directory v2).

services.AddDefaultIdentity<ApplicationUser>()
   .AddEntityFrameworkStores<ApplicationDbContext>();

Индивидуальные учетные записи означают, что вы используете ваша собственная база данных для хранения пользователей, паролей, ролей и т. д. c.


Когда вы публикуете sh ваше веб-приложение на Azure, ваша локальная база данных не загружается на Azure.

Если вы используете Visual Studio для публикации sh, оно распознает, что ваше веб-приложение использует Entity Framework, и оно может создать новую Azure SQL базу данных в той же группе ресурсов во время * 1036 це *. Он будет иметь такую ​​же структуру, однако ваши локальные данные не будут загружены.

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

Выберите SQL Базы данных в меню гамбургеров на Azure Портале и посмотрите, можно ли там найти базу данных

Azure Portal Screenshot

Если нет, проверьте Строка подключения, которую обычно можно найти в разделе «Конфигурация» службы приложений: App Service Screenshot

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...