2011-12-25 7 views
1

В моем веб-проекте (ASP.NET) мне нужны две разные мастер-страницы. Один для пользователей, таких как «Администратор», и один для обычных пользователей. Где я могу указать, какую главную страницу загружать? Как я могу загрузить правильную главную страницу, в зависимости от пользователя?Загрузите разные мастер-страницы для разных пользователей

+0

Насколько они отличаются? – SLaks

+0

Они разные. Но я не знаю, где указать желаемый файл для загрузки «.Master». Это главная проблема. – Leo

+0

Можете ли вы объединить их в один мастер с условными обозначениями? – SLaks

ответ

4

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

Когда администратор Войти успешна, установить эту сессионный переменную

Session["adminUserName"]=txtUserName.Text; 

Затем написать метод, чтобы проверить является ли текущий пользователь администратором или нет

public bool IsAdmin() 
    { 
    if(Session["adminUserName"]!=null) 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
    } 

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

void BasePage_PreInit(object sender, EventArgs e) 
    { 
     if(IsAdmin()) 
     { 
      MasterPageFile = "~/MasterAdmin.master"; 
     } 
     else 
     { 
      MasterPageFile = "~/MasterNormal.master"; 
     } 
    } 

Если это приложение ASP.NET MVC, вы можете проверить это в своем ActionMethod.

public ActionResult Index() 
{ 
if(IsAdmin()) 
{ 
    return View("Index", "MasterAdmin"); 
} 
else 
{ 
    return View("Index", "MasterNormal"); 
} 
} 
0

Обращайтесь к событию Page_PreInit и введите MasterPageFile по вашему вкусу.

+0

Я мог бы. Но мне нужно проверять каждый раз роль пользователя, проверять данные в базе данных или в «сеансе». Он не замедляется? – Leo

+0

Я понятия не имею, о чем вы спрашиваете. – SLaks

Смежные вопросы