如何使用浏览器在MVC.NET应用程序中测试基本身份验证

时间:2013-07-29 23:32:55

标签: asp.net-mvc-4 basic-authentication

我正在尝试在我的mvc.net Web应用程序上设置基本身份验证。我使用此示例配置了控制器:asp mvc 3 ActionFilter for basic authentication

我设置了一个断点来检查授权标头,但是HttpRequest中没有标头。我正在访问这样的网站:

http://user1:pass1@localhost/{AppName}/Client/Authorize

如果从控制器中删除[BasicAuthorization]属性,我可以访问该页面。

我在Windows 7计算机上使用IIS 7.0进行调试。

我认为它可能与IIS中的默认授权设置有关。当我抛出HttpUnauthorizedResult()异常时,Chrome中会弹出一个用户名/密码框...我不知道如何告诉IIS使用我的自定义代码来验证用户。

人类用户无法访问此应用程序,因此需要在URL中传递用户名/密码,如上所示。

我还发现了这篇文章:No browser is sending Authorization info in header。我在IIS向浏览器发送UnauthorizedRequest后尝试发送请求两次,但是当用户名/密码对话框弹出时就是这样。我也不确定如何使用Curl命令进行测试......这是通过CMD吗?

1 个答案:

答案 0 :(得分:2)

我在这里发现了这篇文章:SimpleMembership in MVC4 app + WebApi using basic HTTP auth

我能够参考本教程中使用的测试页面:http://kevin-junghans.blogspot.ca/2013/02/mixing-forms-authentication-basic.html来设置一个简单的测试页面来测试基本身份验证是否正常工作。

我不完全确定原因,但我相信当您尝试发送如下凭据时,浏览器不会自动为HttpRequest添加身份验证标头:

http://user1:pass1@localhost/{AppName}/Client/Authorize

在发送身份验证标头之前,必须先与服务器进行401响应的浏览器有关。我只是想不出怎么做。如果有人知道如何正确配置IIS /浏览器,以便您可以使用上述URL格式轻松测试基本身份验证,请告知我们。