身份验证和导航栏

时间:2013-02-08 23:37:33

标签: c# asp.net asp.net-mvc

我想在页面左侧设置一个菜单导航,只有在用户登录后才能显示。

我不知道如何在我的index.cshtml文件中使用MVC4 WebSecurity类和Razor实现此目的。

3 个答案:

答案 0 :(得分:1)

尝试使用2布局:

非登录用户的_Layout.cshtml和

_memberLayout.cshtml用于登录用户。 把你的会员菜单放在_memberLayout。

/主页/索引控制器:

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

        return View();
    }

/会员/指数控制人:

    [Authorize]
    public ActionResult Index()
    {
        return View();
    }
会员文件夹中的

Index.cshtml:

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

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

答案 1 :(得分:0)

如果您使用的是Windows窗体身份验证,请查看User.Identity.IsAuthenticated

答案 2 :(得分: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";
    }
}