Похож на LoginView из WebForms в Asp.Net Core Razor Pages. - PullRequest
0 голосов
/ 20 марта 2019

Я искал, но не мог найти ничего о просмотре входа в систему на страницах бритвы. Мне понравились виды входа в систему и то, как легко было разделять шаблоны на основе ролей. Есть ли способ сделать это на страницах бритвы?

Вот пример LoginView из веб-форм

<asp:LoginView runat="server">
    <RoleGroups>
        <asp:RoleGroups Roles="Admin">    
            <ContentTemplate>            
                Welcome Admin

            </ContentTemplate>
        </asp:RoleGroups>
        <asp:RoleGroups Roles="User">    
            <ContentTemplate> 
                Welcome User     

            </ContentTemplate>            
        </asp:RoleGroups>
    </RoleGroups>
</asp:LoginView>

В основном, как визуализировать различные HTML для пользователей в зависимости от их ролей

1 Ответ

2 голосов
/ 20 марта 2019

Как правило, в ваших представлениях вы можете использовать User.IsInRole:

@if (User.IsInRole("Admin"))
{
    @:Welcome Admin
}

@if (User.IsInRole("User"))
{
    @:Welcome User
}

Теперь, с точки зрения создания повторно используемого представления, вы либо хотите использовать частичное представление или компонент представления.Для этого конкретного сценария должно быть достаточно частичного представления.Компоненты представления более уместны, когда вам нужно внедрить зависимости, выполнить пользовательские запросы или другую расширенную логику, здесь ничего не требуется.

Итак, создайте новое представление Razor, например _Login.cshtml, и поместите туда свой код.Затем, где вы хотите отобразить этот контент, например, в макете:

<partial name="_Login" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...