-->

什么是添加一个安全层对网站的内测中最不显眼的方式?(What is the most unobtru

2019-09-20 10:27发布

比方说,我有一个使用Forms身份验证和典型的会员制的ASP.NET站点(MVC在这种情况下)。 该网站允许身份验证和匿名用户。

当我松开网站作为一个私人测试我想上的应用,像上添加另一层安全超级用户的简单的密码系统,例如。 一旦用户通过安全的这层,我还是希望我的窗体身份验证/会员制到位左右的测试者可以查看该网站通过身份验证或匿名用户。

什么是最不显眼的方式来实现这一目标? 我在寻找,这将需要新的或修改的代码量最少最简单的解决方案。 例如,我不想修改每个控制器来检查一个特殊的cookie。 一定会有更好的办法...

有一个非常类似的问题在这里,但似乎有问题的网站(一次公开)只会匿名请求,所以它并不一定比作我的情况。 这样的回答表明ServerFault使用一些cookie的系统,但对于如何可能已经实施任何进一步的细节。

Answer 1:

在服务器级别实现安全性,在IIS和Windows的Active Directory中添加帐号/密码运行IIS服务器。

您不需要更改任何代码。



Answer 2:

好吧,我知道你不希望修改当前的控制器,但这里是我做了一个类似的行为。
我创建了我给每个需要有特定的访问检查控制器的自定义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?