我想通过 cookie 控制对我的应用程序某些页面的访问。但我只想从一个地方协调这一点。我想在 Layout.cshtml IE 中进行检查,这样所有使用此布局的页面都会自动执行。这样好吗?
编辑:这个应用程序的安全性不是问题。
我想通过 cookie 控制对我的应用程序某些页面的访问。但我只想从一个地方协调这一点。我想在 Layout.cshtml IE 中进行检查,这样所有使用此布局的页面都会自动执行。这样好吗?
编辑:这个应用程序的安全性不是问题。
你违反了 MVC 的核心原则之一——永远不要把真正的逻辑放在视图中。
相反,您应该创建一个 ActionFilter。
您还应该弄清楚如何保护 cookie;您可能应该使用 ASP.Net 现有的会员系统
不,这不好,因为任何人都可以轻松操纵 cookie。
为什么不想使用已经可用的常规身份验证和授权技术?
使用 cookie 来控制对页面的访问听起来不是一个好主意。您将不得不创建一种方法来保护 cookie,这并不容易。没有它,您的身份验证将很容易被欺骗。
我建议您使用 MVC 4 的内置身份验证和授权机制,该机制已为此目的经过充分测试和构建。这是一篇帮助您入门的文章。
使用 MVC4 的[Authorize]
和[AllowAnonymous]
属性,在将站点的某些部分限制为授权用户时,您可以非常灵活。
我发布了一个更冗长的示例,使用上述属性作为另一个 SO question 的答案。
您应该在控制器/页面上使用Authorize属性而不是 cookie,并将页面限制为某些角色并将用户分配给角色。