2012-12-27 168 views
1

我想通过cookie控制对我的应用程序的某些页面的访问。但我只想从一个地方协调这一点。我想过在Layout.cshtml I.E中加入一个支票。这样所有页面使用这个布局将自动执行。这很好吗?控制Cookie访问页面

编辑:此应用程序的安全性,它不关心。

回答

1

不,这不好,因为任何人都可以轻松操纵cookie。

为什么你不想使用已经可用的普通认证和授权技术?

+0

谢谢。在这种情况下,安全性不是问题。它的内部网应用程序。控制我的意思是更多的用户体验方面。 –

3

您违反了MVC的核心原则之一– 从来没有把真正的逻辑放在视图

相反,你应该创建一个ActionFilter。

您还应该弄清楚如何保护cookie;你应该使用ASP.Net的现有会员系统

+0

谢谢,明白了。但是这个ActionFilter是如何工作的? –

+0

http://msdn.microsoft.com/en-us/library/dd410209(v=vs.100).aspx http://msdn.microsoft.com/en-us/magazine/gg232768.aspx – SLaks

1

使用cookie控制对页面的访问听起来不是一个好主意。您将不得不创建一种保护cookie的方法,这并不容易。没有这一点,你的认证将很容易被欺骗。

我建议您使用MVC 4的内置身份验证和授权机制,该机制经过了充分测试,并为此构建。这里是one article让你开始。

使用MVC4的[Authorize][AllowAnonymous]属性,将网站的某些部分限制为授权用户时,您可以非常灵活。

我已经发布了一个更长的使用上述属性作为answer to another SO question的示例。

+0

纠正我if我错了,但授权和允许匿名是关于授权,但没有说任何关于认证。 ASP.NET的成员资格仍然可以在ASP.NET MVC中使用,并且仍然基于cookie(如果使用正确的话,它会很好地工作) –

+0

@SimonMourier这是正确的,您还需要身份验证,如果您需要身份验证开始一个新的MVC4项目,我相信(也很容易激活OAuth认证)。我想说的一点是,你可以非常灵活地控制使用这些属性访问某些页面。 –

+0

正如我上面提到的安全,在这个特定的情况下,它并不那么重要。谢谢... –

0

您应该在控制器/页面上使用Authorize属性而不是Cookie ,并将页面限制为某些角色并将用户分配给角色。