显示基于身份验证的视图

时间:2012-08-21 12:46:48

标签: vb.net asp.net-mvc-3 razor

我已经在我一直在研究的MVC应用程序上正确实现了身份验证,并且希望能够为不同的用户角色显示不同的主布局页面。

我的系统目前有(并且可能总是有)3个用户角色:

1. Administrator
2. Superior
3. General

我想要做的是根据他们的角色创建3个用户布局(首先指向登录页面后),所以_layout_admin.vbhtml等

有谁知道如何实现这一目标?我已经搜遍了所有并且知道我可以限制控制器但是想要将它们首先重定向到正确的用户布局。

1 个答案:

答案 0 :(得分:3)

~/Views/ViewStart.cshtml

@Code
    Dim r = Roles.GetRolesForUser()
    If r.Contains("Administrator") Then
        Layout = "~/Views/Shared/_LayoutForAdmin.vbhtml"
    ElseIf r.Contains("Superior") Then
        Layout = "~/Views/Shared/_LayoutForSuperior.vbhtml"
    ElseIf r.Contains("General") Then
        Layout = "~/Views/Shared/_LayoutForGeneral.vbhtml"
    Else
        Layout = "~/Views/Shared/_Layout.vbhtml"
    End If
End Code