Я обнаружил, что мне нужно было добавить следующее в _Hosts.cs html
@using Microsoft.AspNetCore.Authorization
@attribute [AllowAnonymous]
После того, как я сделал это разрешение, больше не требовалось ни на одной из страниц по умолчанию, и тогда я смог добавьте его на страницы, где я хотел бы его получить.
Например, если вы хотите защитить страницу Counter.razor, просто добавьте атрибут Authorize вверху:
@attribute [Authorize]
Так что теперь если вы попытались получить доступ к странице счетчика, вы получите сообщение «Не авторизовано».
Если вы хотите удалить ссылку счетчика, когда пользователь не вошел в систему, измените NavMenu.razor и окружите ссылку Счетчик знаком <AuthorizeView> </AuthorizeView>
как так:
<AuthorizeView>
<li class="nav-item px-3">
<NavLink class="nav-link" href="counter">
<span class="oi oi-plus" aria-hidden="true"></span> Counter
</NavLink>
</li>
</AuthorizeView>
В идеале я хотел бы просто отказаться от авторизации для страницы индекса и по умолчанию обеспечить все остальное, но я не смог найти способ заставить это работать. Если я попытался добавить @attribute [AllowAnonymous]
на страницу Index.razor, он, похоже, проигнорировал ее.