我的浏览器中的基本身份验证有什么问题?

时间:2010-03-26 14:49:32

标签: asp.net-mvc iis-7 cassini basic-authentication http-status-code-401

我正在尝试转到以下网址: -

  

http://user1:pass1@localhost:1234/api/users?format=xml

没有什么可复杂的。请注意我在网址中是如何获得用户名/密码的?我认为,这是基本身份验证。

当我这样做时,请求标头丢失了'授权'标题。呃......那不对:(

我只在网站上设置了匿名身份验证。我不希望关闭和基本打开...因为并非所有的网站都需要基本...只有一些行动方法。

那么..为什么这不起作用?这与我的代码没有发送401挑战或一些垃圾这一事实有关吗?

对于它的价值,我的网站是在IIS7上运行的ASP.NET MVC1(当我在cassini上运行它时会发生同样的事情)。

更新

如果这是使用基本身份验证(ala安全漏洞)调用资源的非法方式..那么对于ASP.NET MVC网站来说,这是可行的吗?每个操作方法(而不是整个站点,每个说)?

2 个答案:

答案 0 :(得分:0)

如果要使用基本身份验证,对资源的第一个请求需要返回HTTP 401错误代码,并设置WWW-Authenticate标头。这将指示浏览器实际发送这些凭据。

您提到您正在使用ASP.NET MVC。您可以通过web.config执行此操作,但我不确定具体的机制。

答案 1 :(得分:0)

我的公司制作了一款名为Neokernel Web Server(http://www.neokernel.com)的产品,它是一个ASP.NET Web服务器,支持其他功能的基本身份验证。

您可以在apache样式的配置文件中指定受保护的资源,这样您就可以将“受保护”的操作放在需要身份验证的文件夹中,并将其他所有内容放在root / unprotected中。查看安装在Neokernel根目录中的“http.authentication”文件的示例,或者访问demos.zip文件中的身份验证示例。