我正在使用 AspNetSqlMembershipProvider 并创建了用于配置的页面。现在我有了这个工作,我想知道如何最好地利用整个站点的安全性。对于 Controller ,我可以使用 [Authorize],但接下来我该去哪里?我的意思是我是否只是用 Roles.IsUserInRole 来混淆 View ,我还需要在哪里检查。关于如何处理这个问题的任何好的示例网站?
最佳答案
不,你不应该用 Roles.IsUserInRole
来混淆你的观点,这不是 View 检查角色的责任,这是一个 Controller /授权过滤器作业来填充您的 View 模型,以便在 View 中您只有:
@if (Model.ShouldDisplaySomeSection)
{
... // some section
} else {
... // not authorized
}
另请注意,如果您使用标准
[Authorize]
装饰 Controller Action 属性并且用户没有足够的角色,此操作可能永远不会执行, View 永远不会命中。我个人觉得Developer Highway Code作为一个非常有用的安全检查表,即使它不限于 MVC。
关于security - MVC3 安全提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5305468/