比方说,我有一个使用Forms身份验证和典型的会员制的ASP.NET站点(MVC在这种情况下)。 该网站允许身份验证和匿名用户。
当我松开网站作为一个私人测试我想上的应用,像上添加另一层安全超级用户的简单的密码系统,例如。 一旦用户通过安全的这层,我还是希望我的窗体身份验证/会员制到位左右的测试者可以查看该网站通过身份验证或匿名用户。
什么是最不显眼的方式来实现这一目标? 我在寻找,这将需要新的或修改的代码量最少最简单的解决方案。 例如,我不想修改每个控制器来检查一个特殊的cookie。 一定会有更好的办法...
有一个非常类似的问题在这里,但似乎有问题的网站(一次公开)只会匿名请求,所以它并不一定比作我的情况。 这样的回答表明ServerFault使用一些cookie的系统,但对于如何可能已经实施任何进一步的细节。
在服务器级别实现安全性,在IIS和Windows的Active Directory中添加帐号/密码运行IIS服务器。
您不需要更改任何代码。
好吧,我知道你不希望修改当前的控制器,但这里是我做了一个类似的行为。
我创建了我给每个需要有特定的访问检查控制器的自定义ActionFilterAttribute。 你可以有这样的事情:
public class CheckBetaAccess : ActionFilterAttribute {
public override void OnActionExecuting(ActionExecutingContext filterContext) {
if (!canAccess) {
filterContext.Controller.ViewData["someViewData"] = "some text";
filterContext.Result = new ViewResult {
ViewName = "the-view-anonymous-users-should-see",
ViewData = filterContext.Controller.ViewData
};
filterContext.Result.ExecuteResult(filterContext);
}
}
}
然后,我饰我的控制器:
[CheckBetaAccess]
public class SomeController : Controller {
//....
}
文章来源: What is the most unobtrusive way to add a layer of security for a private beta of website?