Asp.net встроенный логин, чтобы скрыть меню - PullRequest
0 голосов
/ 03 мая 2011

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

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

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

1 Ответ

0 голосов
/ 03 мая 2011

Если вы используете 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 {...} будет отображаться при входе пользователя в систему.

Существует эквивалентный код для представлений веб-форм (.aspx), который можно сделать несколькими способами.

Один из способов - работать с выделенным кодом и манипулировать серверными элементами управления. Таким образом, ваша страница .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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...