我应该能够使用localhost测试AuthorizeAttribute和RequireHttpsAttribute吗?

时间:2015-08-16 14:52:00

标签: asp.net-mvc-5

我已经使用MVC 5构建了大约一个月了。在深入了解我的项目之前,我想确保完成安全性,并建立一个安全的网站。我创建了5个应该可供所有人使用的页面,我即将实现AspNet.Idenity。但首先我想测试以下是否按预期工作。基本上我期望所有页面都出于安全原因而失败,除了主页。根据我的研究,如果我补充:

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
    filters.Add(new HandleErrorAttribute());
    filters.Add(new System.Web.Mvc.AuthorizeAttribute());
    filters.Add(new RequireHttpsAttribute());
}

每个页面都应该要求HTTPS和登录用户。 我只用[AllowAnonymous]装饰了Home,索引控制器,这样我就可以在启动项目时登陆一页。我期待每个其他页面都失败,或错误或重定向登录(不知道如何,因为这还不是HTTPS)。

但每个页面都没有问题。我是否应该能够使用localhost进行测试,或者我真的需要一个带IIS的服务器环境?我理解这是HTTP的可能性,但我认为AuthorizeAtribute应该很容易测试并失败。我做得不对劲?

1 个答案:

答案 0 :(得分:0)

AuthorizeAttribute取决于IPrincipalIIdentity的实施,以便发挥作用。因此,如果没有首先实现您选择的身份验证模型,它就无法工作。

RequireHttpsAttribute要求您在本地IIS上安装SSL证书才能正常运行。

但是一旦添加了依赖项以使属性起作用,它们将在本地运行,就像它们在Web服务器上一样。