我正在处理的应用程序有一个会话超时值.如果用户之间的交互时间不超过此值,则会尝试加载下一页,然后系统会提示他们登录.
所有发出的请求都通过这种机制进行路由,其中包括AJAX调用.最初我们在登录页面上发送了200个头文件,这引入了AJAX的一些问题,因为如果发送了200个响应,则运行代码,并且从这些RPC调用发回的大多数数据是JSON或得到评估的原始JavaScript(不问:|).
我建议401更好,因为我们的JSON解析器不会尝试使用HTML登录页面.. :)
但是,在阅读规范时,我注意到该WWW-Authenticate
字段也必须发送.
这个领域有什么好处?会Application Login
满足吗?
我需要使用基本身份验证发送授权请求.我已经使用jquery成功实现了这一点.但是当我得到401错误时,基本的auth浏览器弹出窗口被打开,并且没有调用jquery ajax错误回调.
我正在使用基本身份验证来保护仅在公司网络内部公开的一组WCF Web服务,我想知道当Web服务返回401时,是否有办法触发浏览器的凭据对话框从AJAX调用中显示错误?
目前,我的AJAX调用将401作为常规失败请求接收,并且不会提示浏览器执行任何操作.但是,如果我使用相同的URI并将其复制粘贴到浏览器的URL栏中,则返回的401会正确触发"基本身份验证"对话框.
有没有办法让AJAX回调告诉浏览器弹出该对话框?
我正在编写一些浏览器端动态功能,并使用HTTP Basic Auth来保护一些资源.用户体验非常重要,并且高度定制.
这是一个简单的测试JQuery方法,最终将测试用户是否在表单中提供了正确的凭据:
$(document).ready(function() {
$("#submit").click(function() {
var token = Base64.encode($('#username').val() + ':' + $('#password').val());
$.ajax({
url: '/private',
method: 'GET',
async: false,
beforeSend: function(req) {
req.setRequestHeader('Authorization', 'test:password');
},
error: function(request, textStatus, error) {
if (request.status == 401) {
alert('401');
}
}
});
return false;
});
});
Run Code Online (Sandbox Code Playgroud)
如果不允许他们访问/private
,那么他们应该只看到警告框.但是,在Firefox上,会弹出一个浏览器提供的登录表单(使用新凭据重试).Safari不会这样做.
我们希望通过自定义表单,淡入淡出,转换等完全控制体验.如何防止Firefox的默认框显示?(如果我们测试IE时会出现这个问题,我也很乐意听到那里的解决方案.)
我有一个简单的问题:是否可以在XMLHTTPRequest中使用Digest-Authentication?
如果答案是否定的,那么技术原因是什么?或者如果有可能 - 我该怎么做?
非常感谢...到目前为止谷歌没有好的答案: - /
编辑:
谢谢你的回答.在收到nonce后,修改标头以匹配摘要认证方案似乎是一种解决方案.
但我真正想要的是我可以改变我当前的调用:xmlhttp.open("GET",url,false,用户名,密码); 某事 像那个xmlhttp.open("GET",url,false,用户名,密码,"DIGEST");
这也是我最初的问题的一部分:为什么open方法不提供做出摘要请求的选项?
也许有js-lib可以推荐让我这样做 - 正如你想象的那样我真的不想将一个简单的xmlhttp.open更改为多个请求并首先得到一个nonce.
我有兴趣使用Adobe Air制作一个Twitter客户端,但我现在有点困难,因为我无法想出一个更好的方法来连接到twitter REST API,因为它需要身份验证.
目前,客户端使用GET变量中的twitter用户名/密码(未加密)向我的服务器(使用curl的php脚本)发送请求.然后,服务器使用这些凭证向twitter发出请求并输出缓冲区,然后将缓冲区发送回客户端,然后客户端处理/显示它.
这显然是一个可怕的安全漏洞,所以有人知道更好(更安全)的方式吗?
仅供参考:我正在使用jQuery.
javascript ×5
jquery ×3
air ×1
ajax ×1
firefox ×1
http ×1
http-headers ×1
php ×1
rest ×1
wcf ×1
wcf-security ×1
web ×1