我在 ASP .NET MVC3 Web 应用程序中使用 Active Directory 身份验证。
我想控制在视图中呈现哪些组件。我正在考虑的选项是从控制器传递登录用户所属的组,然后使用帮助器对象检查用户是否是所需组的一部分。这是实现这一目标的最佳方法吗?如果是,那么我将如何实现控制器部分?
谢谢。
我在 ASP .NET MVC3 Web 应用程序中使用 Active Directory 身份验证。
我想控制在视图中呈现哪些组件。我正在考虑的选项是从控制器传递登录用户所属的组,然后使用帮助器对象检查用户是否是所需组的一部分。这是实现这一目标的最佳方法吗?如果是,那么我将如何实现控制器部分?
谢谢。
如果您使用链接到页面的正确模型(视图模型,而不是您域中的类),这可以实现,如果您遵循这种方法,则视图模型应该包含视图所需的所有信息,仅此而已,由于您的视图需要根据当前用户角色知道哪些控件应该可见,因此我将为视图模型中的每个控件创建一个属性,如下所示:
public class MyViewModel
{
public bool ShowMycontrol1 { get; set; }
}
在您的控制器中使用当前用户角色填充此“标志”,最后在视图中检查这些属性以显示或隐藏所需的控件
这只是实现这一目标的一种方法,我相信还有更多
您可以编写扩展方法。假设您要检查用户是否为管理员。因此,您可以使用这样的扩展方法来做到这一点;
public static class AuthHelper
{
public static bool IsUserAdmin(this HtmlHelper helper)
{
return helper.ViewContext.HttpContext.User.IsInRole("Administrator");
}
}
我希望这有帮助。