MVC3安全提示

rob*_*gan 5 security asp.net-mvc-3

我正在使用AspNetSqlMembershipProvider并创建我的页面进行配置.现在我有这个工作,我想知道如何最好地利用整个网站的安全性.对于控制器,我可以使用[授权],但下一步该怎么办?我的意思是我只是用Roles.IsUserInRole来混淆视图,我需要在哪里进行检查.关于如何处理这个问题的任何好的示例网站?

Dar*_*rov 7

不,你不应该混淆你的观点Roles.IsUserInRole,这不是一个视图检查角色的责任,这是一个控制器/授权过滤器作业来填充你的视图模型,以便在视图中你只有:

@if (Model.ShouldDisplaySomeSection)
{
    ... // some section
} else {
   ... // not authorized
}
Run Code Online (Sandbox Code Playgroud)

另请注意,如果使用标准[Authorize]属性修饰控制器操作,并且用户没有足够的角色,则可能永远不会执行此操作,并且视图永远不会被命中.

就个人而言,我发现Developer Highway Code是一个非常有用的安全检查表,即使它不仅限于MVC.