sudhakarthikeyan Ответов: 1

Как удалить меню после входа на страницу входа в систему ASP.NET


&ЛТ; АСП:меню с ID="элемент menu1" атрибут runat="сервер" ширина="200 пикселей" &ГТ;
< предметы >
< asp:MenuItem Text="сведения о сотруднике" NavigateUrl="~/Employee_Details.aspx"
Значение="Employee_Details" &ГТ;
< /asp:MenuItem >

&ЛТ;АСП:пункт меню текст="ч" navigateurl свойство="~/час.aspx, который" значение="час"и GT;

&ЛТ;АСП:пункт меню текст="менеджер" navigateurl свойство="~/менеджер.aspx, который" значение="менеджер"и GT;





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

Раз отметить, входа пользователя в систему пользователь будет перенаправлен на главную страницу. дома.aspx-файл

в home.aspx видны все названия меню.


я попробовал следующий код, как только пользователь войдет на домашнюю страницу, чтобы показать только меню сотрудников и удалить меню HR и Manager.


На странице входа в систему я написал приведенный ниже код следующим образом

если (txtuser.Текст == "админ")
{
var menu = страница.Мастер.FindControl("Menu1") как меню;
if (меню != null)
{
меню.Предметы.Удалить(меню.FindItem("Посещаемость"));
меню.Предметы.Удалить(меню.FindItem("Менеджер"));
}
}

из приведенного выше кода я удаляю меню посещаемости и HR.

но когда пользователь входит в систему home.aspx ,все меню отображают сотрудника, посещаемость и менеджера.

в чем же ошибка в моем вышеприведенном коде?

Что я уже пробовал:

&ЛТ; АСП:меню с ID="элемент menu1" атрибут runat="сервер" ширина="200 пикселей" &ГТ;
< предметы >
< asp:MenuItem Text="сведения о сотруднике" NavigateUrl="~/Employee_Details.aspx"
Значение="Employee_Details" &ГТ;
< /asp:MenuItem >

&ЛТ;АСП:пункт меню текст="ч" navigateurl свойство="~/час.aspx, который" значение="час"и GT;

&ЛТ;АСП:пункт меню текст="менеджер" navigateurl свойство="~/менеджер.aspx, который" значение="менеджер"и GT;





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

Раз отметить, входа пользователя в систему пользователь будет перенаправлен на главную страницу. дома.aspx-файл

в home.aspx видны все названия меню.


я попробовал следующий код, как только пользователь войдет на домашнюю страницу, чтобы показать только меню сотрудников и удалить меню HR и Manager.


На странице входа в систему я написал приведенный ниже код следующим образом

если (txtuser.Текст == "админ")
{
var menu = страница.Мастер.FindControl("Menu1") как меню;
if (меню != null)
{
меню.Предметы.Удалить(меню.FindItem("Посещаемость"));
меню.Предметы.Удалить(меню.FindItem("Менеджер"));
}
}

из приведенного выше кода я удаляю меню посещаемости и HR.

но когда пользователь входит в систему home.aspx ,все меню отображают сотрудника, посещаемость и менеджера.

в чем же ошибка в моем вышеприведенном коде?

[no name]

В принципе, чего вы хотите достичь?Когда пользователь входит в систему, очевидно, что он должен приземляться на домашнюю страницу.Мой вопрос заключается в том ,есть ли у вас роли, определенные в вашей базе данных, например, если пользователь входит в систему как HR, то только они могут видеть только два меню, связанных с hr меню и его собственные данные.То же самое, как когда менеджер входит в систему, то он/она может видеть свои собственные детали и меню менеджера.Например, когда такой пользователь, как вы, входит в систему, то должны быть показаны только ваши данные. Заключается в том, что некоторые вещи, что вы хотите достичь?Пожалуйста, задавайте простые вопросы.Вы скопировали свой код и сохранили его в вопросе, что абсолютно нормально, но убедитесь, что сообщество может правильно понять ваши запросы.

[no name]

например, если пользователь входит в систему как HR, то только они могут видеть только два меню, связанных с hr меню и его собственные данные.
То же самое, как когда менеджер входит в систему, то он/она может видеть свои собственные детали и меню менеджера.
Например, когда такой пользователь, как вы, входит в систему, то должны быть показаны только ваши данные.

да таким образом как показать меню при входе пользователя на страницу входа в систему

1 Ответов

Рейтинг:
0

F-ES Sitecore

Когда вы "удаляете" меню в своем коде, вы удаляете его только для этого экземпляра, то есть для запроса этой страницы. На следующей странице запроса все меню создаются заново, поэтому вам нужно запускать этот код при каждом запросе, хотя традиционно устанавливается видимость false, если вы не хотите что-то показывать;

menu.visible = false;


Поскольку вам нужно делать это на каждой странице запроса, вам нужен способ запомнить, вошел ли пользователь в систему или нет. Самый простой (но не лучший, однако я предполагаю, что вы только учитесь) - это сохранить это в сеансе. Поэтому когда кто то входит в систему сделайте что то вроде

Session["Username"] = txtuser.Text;


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

string username = null;
if (Session["Username"] != null)
{
    username = (string)Session["Username"];
}

if (username=="admin")
{
   menu.Visible = false;
}