2013-02-08 2 views
1

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

Я не знаю, как я могу добиться этого с MVC4 Класс WebSecurity и Razor в моем файле index.cshtml.

ответ

1

попробуйте использовать 2 макета:

_Layout.cshtml для не пользователь входа в систему и

_memberLayout.cshtml для войдите в систему. введите свое меню членов в _memberLayout.

контроллер

/Home/Index:

public ActionResult Index() 
    { 
     if (User.Identity.IsAuthenticated) 
     { 
      return RedirectToAction("Index", "Member"); 
     } 

     return View(); 
    } 

/Член/Index контроллера:

[Authorize] 
    public ActionResult Index() 
    { 
     return View(); 
    } 

Index.cshtml в папке пользователя:

@{ 
    ViewBag.Title = "Member Area"; 
    Layout = "~/Views/Shared/_memberLayout.cshtml"; 
} 

<div> 
     ... your member html code 
</div> 
0

При использовании проверки подлинности Windows Forms, посмотрите на User.Identity.IsAuthenticated

0

Используйте два макета страницы

  • _Layout.cshtml
  • _MemberLayout.cshtml

Тогда у вас есть два варианта:


Первый: В _ViewStart.cshtml

Изменение

Layout = "~/Views/Shared/_Layout.cshtml"; 

Для

if (Request.IsAuthenticated) 
{ 
    Layout = "~/Views/Shared/_MemberLayout.cshtml"; 
} 
else 
{ 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 

Или: В начале каждого просмотра сделайте следующее:

@{ 
 
    ViewBag.Title = "Home Page"; 
 
    if (Request.IsAuthenticated) 
 
    { 
 
     Layout = "~/Views/Shared/_MemberLayout.cshtml"; 
 
    } 
 
}

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