У меня есть легкий проект веб-API ASP.NET Core. У него нет внешнего интерфейса, и поэтому ему не нужна большая часть того, что входит в пакет Microsoft.AspNetCore.Mvc
. Вместо этого я обычно могу использовать пакет Microsoft.AspNetCore.Mvc.Core
.
За исключением того, что мне нужна аутентификация AAD, и когда я втягиваю Microsoft.AspNetCore.Authentication.AzureAD.UI
он принимает Microsoft.AspNetCore.Mvc
в качестве зависимости ...
Просматривая код, кажется, что включены некоторые контроллеры и предварительно скомпилированные представления Razor , поэтому я понимаю, почему вам нужен полный пакет Mvc
для их поддержки.
Было бы здорово, если бы вы могли отделить базовую аутентификацию AAD от компонентов пользовательского интерфейса, чтобы тем из нас, кому не нужен пользовательский интерфейс, не нужно было принимать зависимость от большого пакета Mvc. Возможно, что-то вроде этого:
Microsoft.AspNetCore.Authentication.AzureAD.UI
Microsoft.AspNetCore.Mvc
Microsoft.AspNetCore.Authentication.AzureAD.Core
Microsoft.AspNetCore.Authentication.Cookies
Microsoft.AspNetCore.Authentication.JwtBearer
Microsoft.AspNetCore.Authentication.OpenIdConnect
Спасибо.
Закрытие, потому что нет планов вносить какие-либо изменения в это. Часть пользовательского интерфейса - это основная часть того, что есть в этой функции, поэтому, если мы разделим ее, почти ничего не останется.
@Eilon - он по-прежнему полезен без представлений пользовательского интерфейса для проектов WebAPI. В нашем у меня есть:
services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
.AddAzureAD(options => Configuration.Bind("AzureAd", options))
.AddAzureADBearer(options => Configuration.Bind("AzureAd", options));
Как бы я сделал эквивалент без пакета Microsoft.AspNetCore.Authentication.AzureAD.UI
?
Чтобы разблокировать свою команду, я временно скопировал исходный код локально и удалил компоненты пользовательского интерфейса. Он работает хорошо, но теперь этот код не используется для дальнейшего обслуживания. Было бы хорошо, если бы он был построен таким образом естественным образом.
@ mj1856 понял, но в настоящее время это все еще не запланировано из-за общего отсутствия спроса, поэтому приоритет слишком низкий.