1

行。在我的 ASP.NET MVC 应用程序中,我使用的是Windows Authentication. 我想layouts为用户组使用不同的主题 ( )。所以我的问题是我在哪里/如何intercept user authentication为给定的组应用主题。

我应该在内部处理它default route/action(并检查请求是否经过身份验证?)。

谢谢!

4

1 回答 1

1

我们通过创建多个布局来使用类似的设置,每个角色一个布局。

例如,假设您有一个会计角色,因此您创建一个布局页面,该页面引用该Accounting.css文件和该角色的任何特殊 .js 文件

在该布局的顶部使用这个

@{
    Layout = null;
}

在您的_ViewStart.cshtml部分视图中,请输入以下内容:

@{
    if (User.IsInRole("Admin")) {
        Layout = "~/Views/Shared/_AdminLayout.cshtml";
    }
    else if(User.IsInRole("Accounting")) {
        Layout = "~/Views/Shared/_AccountingLayout.cshtml";
    }
    else if(User.IsInRole("HR")) {
        Layout = "~/Views/Shared/_HRLayout.cshtml";
    }
    else {
        Layout = "~/Views/Shared/_Layout.cshtml";
    }
}

我将管理员角色放在首位,因为管理员通常也可以访问所有其他角色,也就是说,在我的情况下,管理员使用也属于所有其他角色。因此,将其设置在顶部将立即过滤掉所有不是管理员的用户并检查他们的特定角色,并且任何管理员都可以快速获得管理员布局

于 2012-05-10T12:35:17.010 回答