【问题标题】:Missing headers in IIS6 (ColdFusion, and possibly other languages too)IIS6 中缺少标头(ColdFusion,可能还有其他语言)
【发布时间】:2011-12-31 11:42:40
【问题描述】:

我正在使用 ColdFusion 访问从 IIS 传递的“授权”标头值。 我在 IIS7 上可以正常工作,但是在 IIS6 中,ColdFusion 中的标头对我来说根本不可用。 我尝试使用 JAVA 访问标题,并且我在其他地方读到人们在使用 ASP 时遇到过类似的问题。

奇怪的是,如果我查看 FireFox 的 FireBug 中的标头,授权标头在那里可见,所以我知道 IIS 服务器正在将值传回 - 我只是无法在我的代码中使用它!

有人有解决办法吗?

代码示例:

<!--- Force authorisation --->
<cfheader statuscode="401" statustext="Unauthorized" />
<cfheader name="WWW-Authenticate" value="basic realm=""API""" />
<cfoutput>
    #getPageContext().getRequest().getHeader('Authorization')# <!--- Blank on IIS6 --->
    <cfdump var="#getHTTPRequestData()#"> <!--- Authorization header missing on IIS6 --->
</cfoutput>

【问题讨论】:

    标签: java coldfusion iis-6 http-headers


    【解决方案1】:

    您是否尝试过在 IIS 中同时启用“基本”和“匿名”身份验证?如果没有启用 Basic,IIS 6 可能不会将该标头暴露给底层应用程序。

    【讨论】:

    • 唉,是的...我尝试了各种组合。事实上,在我正常工作的 IIS7 设置中,我没有启用 Basic。我发现当在 IIS6 服务器上启用 Basic 时,会出现两个单独的身份验证窗口 - 一个以域作为域,另一个以我设置的特定域。我能看到的唯一区别是,在 IIS6 服务器上,匿名访问附加了用户名和密码,因此匿名点击使用特定的 windows 帐户。
    • 好吧,我知道通常身份验证信息是通过 cgi.auth_user 提供的。你试过用那个吗?
    • 它在 CGI 范围内不可用 - 事实上,据我所知,getPageContext() Java 方法用于填充 CF 的 CGI 变量,所以如果我无法获取使用 getPageContext() 获取数据,我也无法在 CGI 范围内获取它。
    • 您可能必须向 IIS 添加一个模块以允许此标头可用。也许这个? custombasicauth.codeplex.com
    猜你喜欢
    • 1970-01-01
    • 2014-01-15
    • 2011-08-20
    • 1970-01-01
    • 2013-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多