Asp.net встроенный логин, чтобы скрыть меню

63
7

Я делаю приложение ASP.NET MVC, используя встроенный логин. На этой странице также есть 2 пункта меню, которые пользователь может получить без входа.


Мое требование заключается в том, что пользователь должен иметь доступ к любому из пунктов меню до тех пор, пока он не войдет в систему, так что мне нужно скрыть пункты меню или отключить клики на нем, пока пользователь не войдет в систему.


Как я могу это сделать?

спросил(а) 2021-01-25T18:50:48+03:00 5 месяцев назад
1
Решение
124

Если вы используете Razor Views, вы можете использовать что-то вроде этого:


@if(Request.IsAuthenticated) {
<span><a href="#">@user.ShortName</a></span>
<text>
@Html.ActionLink("My Profile", "profile", "account") |
@Html.ActionLink("Help", "index", "help") |
@Html.ActionLink("Log Off", "LogOff", "Account")
</text>
}

Код в блоке @if {...} - это то, что вы могли бы показать, если пользователь вошел в систему.


Здесь есть эквивалентный код для WebForms (.aspx) Views, который вы могли бы сделать несколькими способами.

Один из способов - работать с кодом и управлять элементами управления сервером. Таким образом, ваша страница .aspx будет иметь что-то вроде этого:


<asp:HyperLink ID="lnkMyProfile" Text="My Profile" NavigateUrl="/myprofile"></asp:HyperLink>

Затем в вашем коде (например,.aspx.cs):


if(User.Identity.IsAuthenticated) {
lnkMyProfile.Visible = true;
} else {
lnkMyProfile.Visible = false;
}

ответил(а) 2021-01-25T18:50:48+03:00 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема