如何制作一个像superuser.com上的测试页面?

问题描述:

我正在与ASP.Net MVC合作,我想通过互联网访问一个网站,但只有少数人可以选择。我想做一些基本完全像测试版访问页面一样的密码,就像他们在*,serverfault和superuser上做的一样。如何制作一个像superuser.com上的测试页面?

我不只是想检查和重定向在家庭控制器,我希望它总是去那里不管使用什么网址。

任何人都知道他们是怎么做到的?

我并不十分了解MVC,但它可能意味着创建一个基本控制器并重写OnActionExecuting或OnAuthorization。

+0

这就是我所倾向的,但我希望有人知道asp.net mvc比我更好的可以告诉我一些可扩展性,这将是一个更清洁。 – 2009-08-17 20:34:36

+0

我看到的唯一选择是将过滤器属性应用于所有操作。这不会很有趣:) – 2009-08-17 20:40:11

+0

你可以在课堂上进行过滤,这更容易管理。 – swilliams 2009-08-17 20:48:00

简单的方法是把东西放在用户会话中。在母版页或http处理程序上运行检查以查看该会话是否正确。如果没有重定向到密码捕获页面。当提供密码,然后设置会话变量... wa la他们在。

如果你想记住他们,那么也删除一个cookie,并将其添加到您的支票。

+1

控制者有责任决定如何处理收到的请求,对吗?我会尽量让这个决定离开UI层。 – 2009-08-17 20:32:44

我会创建一个扩展AuthorizeAttribute的自定义过滤器。这样你就可以把它放在你想要的控制器/动作上,并且很容易地将其移除。由于它本质上是一个装饰者,所以你也会玩Open/Closed principle

如果你覆盖AuthorizeCore你可以检查会话/ cookie /无论登录,如果通过,运行基地AuthorizeCore也。