【问题标题】:Handle www-authentication request using ajax?使用ajax处理www-authentication请求?
【发布时间】:2010-10-22 00:51:43
【问题描述】:

是否可以使用 AJAX 将凭据传递给请求 www-authentication 的网络服务器?

我想登录一个使用 .NET Bsic www-authentication 的网站,并使用 ajax 传递凭据。使用浏览器访问服务器时,浏览器会通过身份验证/登录窗口提示用户。

html 标头包含以下内容:

WWW-Authenticate: Basic
realm="hosting.xp"
MicrosoftSharePointTeamServices: 6.0.2.6568
X-Powered-By: ASP.NET

我想通过从 ajax 对象调用它来访问“幕后”网站,但我不确定如何处理请求身份验证的 http 标头。

我希望 ajax 调用导致特定用户登录(cookie 集),以便用户稍后可以访问该站点并“已经”登录。

可以按照我在这里描述的方式完成吗?

【问题讨论】:

    标签: .net ajax authentication


    【解决方案1】:

    您可以像这样在 URL 中传递用户名和密码:

    http://username:password@example.com/secure

    这是一个使用 jQuery 的示例:

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function(){
        $('a.logMeIn').click(function(){
            $.get('http://username:password@example.com/secure', null, function(response) {
                alert(response);
            });
        });
    });
    
    </script>
    
    <a href="#" class="logMeIn">Log me in!</a>
    

    【讨论】:

    • 如果密码中包含除字母数字字符以外的其他内容,则会出现问题...您将如何解决这个问题?
    【解决方案2】:

    使用 http-authentication 不需要 cookie,凭据由浏览器保存,或者在您的初始请求的情况下,由您的 javascript 状态保存。

    【讨论】:

      猜你喜欢
      • 2011-12-26
      • 2012-11-24
      • 1970-01-01
      • 1970-01-01
      • 2019-11-20
      • 2017-10-21
      • 1970-01-01
      • 2015-06-18
      • 2018-11-21
      相关资源
      最近更新 更多