Теги CascadingAuthenticationState и NotFoundContent не работают в Blazor - PullRequest
1 голос
/ 19 октября 2019

Итак, я следовал этому руководству для реализации авторизации / аутентификации в моем клиентском приложении Blazor (размещено ядро ​​asp.net). Все работало нормально, пока я не начал работать на стороне клиента (подзаголовок «Настройка клиентской части Blazor» в , учебник ). Я успешно установил пакет nuget Blazored.LocalStorage. Но мне не удается добавить компоненты "CascadingAuthenticationState" и "NotFoundContent" в мой файл App.razor. Компилятор не видит эти компоненты и просит добавить их с помощью директив.

Вот _Imports.razor:

@using Microsoft.AspNetCore.Components.Forms
@using Microsoft.AspNetCore.Components.Routing
@using Microsoft.AspNetCore.Components.Web
@using Microsoft.JSInterop
@using Musical_WebStore_BlazorApp.Client
@using Musical_WebStore_BlazorApp.Client.Shared
@using Microsoft.AspNetCore.Authorization
@using Blazored.LocalStorage

Вот App.razor, который не работает (и я спрашиваючтобы помочь мне заставить его работать):

<CascadingAuthenticationState>
    <Router AppAssembly="typeof(Program).Assembly">
        <NotFoundContent>
            <p>Sorry, there's nothing at this address.</p>
        </NotFoundContent>
    </Router>
</CascadingAuthenticationState>

Вот App.razor, который работал (у меня это было по умолчанию):

<Router AppAssembly="@typeof(Program).Assembly">
    <Found Context="routeData">
        <RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
    </Found>
    <NotFound>
        <LayoutView Layout="@typeof(MainLayout)">
            <p>Sorry, there's nothing at this address.</p>
        </LayoutView>
    </NotFound>
</Router>

Вот версии проектов:

Blazor.Client (пакет nuget Microsoft.AspNetCore.Blazor): 3.0.0-preview9.19465.2

ASP.NET Core (пакет nuget Microsoft.AspNetCore.Blazor.Server): 3.0.0-preview9.19465.2

Общий доступ: библиотека .NET Standard 2.0

Как решить эту проблему? Похоже, эти компоненты должны быть доступны по умолчанию. И даже если нет, я не смог найти пространство имен для этих компонентов в интернете.

1 Ответ

2 голосов
/ 19 октября 2019

Вам необходимо установить пакет Microsoft.AspNetCore.Components.Authorization от NuGet. Этот пакет не существовал на момент написания этой статьи. После того, как вы установили его и добавили использование в _Imports.razor, все будет хорошо.

...