问题列表 - 第717页

如何禁止浏览器的身份验证对话框?

我的Web应用程序有一个登录页面,通过AJAX调用提交身份验证凭据.如果用户输入正确的用户名和密码,一切都很好,但如果没有,则会发生以下情况:

  1. Web服务器确定虽然请求包含格式良好的Authorization标头,但标头中的凭据无法成功进行身份验证.
  2. Web服务器返回401状态代码,并包含一个或多个WWW-Authenticate标头,列出支持的身份验证类型.
  3. 浏览器检测到对XMLHttpRequest对象的调用的响应是401,响应包括WWW-Authenticate头.然后它会弹出一个身份验证对话框,再次询问用户名和密码.

这一切都很好,直到第3步.我不希望弹出对话框,我想要在我的AJAX回调函数中处理401响应.(例如,通过在登录页面上显示错误消息.)我希望用户重新输入他们的用户名和密码,当然,但我希望他们看到我友好,安心的登录表单,而不是浏览器的丑陋,默认验证对话框.

顺便说一句,我无法控制服务器,所以让它返回自定义状态代码(即401以外的东西)不是一个选项.

有什么办法可以抑制身份验证对话框吗?特别是,我可以在Firefox 2或更高版本中禁止"需要验证"对话框吗?有没有办法在IE 6及更高版本中禁止连接到[主机]对话框?


编辑
作者的其他信息(9月18日):
我应该补充说,浏览器的身份验证对话框弹出的真正问题是它给用户提供的信息不足.

用户刚刚通过登录页面上的表单输入了用户名和密码,他认为他已经正确输入了这些用户名和密码,并且他点击了提交按钮或按回车键.他的期望是,他将被带到下一页,或者可能被告知他输入的信息不正确,应该再试一次.但是,他会出现一个意外的对话框.

对话是没有的,他只是一个事实确认没有输入用户名和密码.它没有明确说明存在问题,他应该再试一次.相反,该对话框向用户显示诸如"网站说:' [领域] '之类的神秘信息." 凡[境界]是,只有一个程序员可以爱很短的领域名称.

Web broswer设计师注意到:如果对话框本身更加用户友好,没有人会问如何抑制身份验证对话框.我正在登录表单的全部原因是我们的产品管理团队正确地认为浏览器的身份验证对话框太糟糕了.

javascript ajax http-authentication

79
推荐指数
4
解决办法
5万
查看次数

各种Python实现的优缺点是什么?

我是Python的新手,我一直使用标准的cpython(v2.5)实现.

我一直在想其他实现,特别是Jython和IronPython.是什么让他们更好?是什么让他们变得更糟 还有哪些其他实现?

我想我正在寻找的是每个实现的摘要和利弊列表.

python

8
推荐指数
3
解决办法
1528
查看次数

在.NET中获取默认打印机的最佳方法是什么

我需要获取默认的打印机名称.我将使用C#,但我怀疑这更像是一个框架问题而且不是特定于语言的.

.net

73
推荐指数
4
解决办法
9万
查看次数

为什么我需要flickr api密钥?

通过阅读Flickr API文档,它一直声明我需要一个API密钥来使用他们的REST协议.我只是在构建一个照片查看器,收集来自Flickr的公共照片提要的信息(例如,我不打算编写上传脚本,需要API密钥).获得密钥可以获得任何附加功能吗?

更新我回答了以下问题

flickr

15
推荐指数
3
解决办法
1万
查看次数

如何提高RichFaces ScrollableDataTable控件的性能?

首先,一点背景:

我正在使用ScrollableDataTable显示一个包含288行和8列(2304条记录)的数据集,性能还有很多不足之处.与使用DataTable控件渲染相同数据时的7秒相比,重新启动控件的AJAX请求需要将近20秒才能完成.

通过Servlet过滤器和JavaScript捕获的度量标准表明,几乎所有的处理时间都花费在客户端.在19.87秒的请求中,在服务器上花费了3.87秒...用于查询和排序数据的时间少于0.6秒.

切换到DataTable控件将请求,响应和渲染周期缩短到我在ScrollableDataTable上看到的1/3,但也删除了几个重要的功能.

现在的问题是:

有没有其他人遇到过ScrollableDataTable的性能问题?使用固定列和双轴滚动在JSF/RichFaces中呈现大量表格数据的最有效方法是什么?

更新:

我们最终编写了一个自定义控件.完全控制渲染的组件和生成的JavaScript允许我们实现与DataTable相当的响应时间.我同意扎克的看法 - 分页是正确的答案.

jsf richfaces

5
推荐指数
1
解决办法
8921
查看次数

CGI.pm通常在哪里创建临时文件?

在我的所有Windows服务器上,除了一台机器,当我执行以下代码来分配临时文件文件夹时:

use CGI;
my $tmpfile = new CGITempFile(1);
print "tmpfile='", $tmpfile->as_string(), "'\n";
Run Code Online (Sandbox Code Playgroud)

变量$tmpfile被赋值'.\CGItemp1',这就是我想要的.但是在我的一台服务器上,它被错误地设置为C:\temp\CGItemp1.

所有服务器都运行Windows 2003 Standard Edition,IIS6和ActivePerl 5.8.8.822(升级到更高版本的Perl不是一个选项).从命令行或IIS中作为CGI脚本(其中scriptmap .pl= c:\perl\bin\perl.exe "%s" %s)运行脚本时,结果始终相同.

我如何修复这个Perl安装并强制它.\CGItemp1默认返回' '?

我甚至将整个Perl文件夹从一个工作服务器复制到了这台机器,但没有任何乐趣.

@Hometoast:

我检查了' TMP'和' TEMP'环境变量$ENV{TMP},$ENV{TEMP}并且它们是相同的.

从命令行,它们指向用户配置文件目录,例如:

C:\DOCUME~1\[USERNAME]\LOCALS~1\Temp\1

在IIS下作为CGI脚本运行时,它们都指向:

c:\windows\temp

在注册表项中HKEY_USERS/.DEFAULT/Environment,两台服务器都具有:

%USERPROFILE%\Local Settings\Temp

ActiveState实现CGITempFile()显然正在使用另一种机制来确定它应该如何生成临时文件夹.

@Ranguard:

真正的问题在于CGI.pm模块和附件处理.每当文件上传到网站时,都CGI.pm需要将其存储在临时的某个地方.为此,CGITempFile()在内部调用CGI.pm以分配临时文件夹.所以不幸的是我无法使用File::Temp.不管怎么说,还是要谢谢你.

@克里斯:

这帮了很多.我之前有一个快速扫描CGI.pm源,但你的建议让我回过头来仔细研究它以了解底层算法.我把事情搞定了,但最奇怪的是c:\temp服务器上最初没有文件夹.

为了获得临时修复,我创建了一个c:\temp文件夹并为该网站的匿名用户帐户设置了相关权限.但是因为这是一个共享的盒子,我不能这样做,即使临时文件被删除了.简而言之,我将c:\temp文件夹重命名为不同的东西,并且奇怪地返回了正确的' …

perl cgi activestate

2
推荐指数
1
解决办法
3953
查看次数

检测在PHP中关闭的浏览器连接

有没有人知道在执行长PHP脚本时是否可以检测浏览器是否已关闭连接,何时使用apachemod_php

例如,在浏览器关闭它之后,如果有人试图写入它Java,HttpOutputStream则会抛出一个exception- 或者会对它做出负面反应checkError().

php apache http mod-php

6
推荐指数
1
解决办法
6013
查看次数

JSF/Facelets中的国际化标签

Facelets是否具有更整洁或更易读的国际化用户界面文本标签的任何功能,否则您可以使用JSF执行哪些操作?

例如,使用普通的JSF,使用h:outputFormat是一种在消息中插入变量的非常详细的方法.

澄清:我知道我可以添加一个消息文件条目,如下所示:

label.widget.count = You have a total of {0} widgets.
Run Code Online (Sandbox Code Playgroud)

并显示此(如果我使用Seam):

<h:outputFormat value="#{messages['label.widget.count']}">
   <f:param value="#{widgetCount}"/>
</h:outputFormat>
Run Code Online (Sandbox Code Playgroud)

但输出一个句子很麻烦 - 只是给JSF一个坏名字的东西.

java jsf facelets internationalization

5
推荐指数
2
解决办法
4395
查看次数

如何在C#ASP.NET网站中有条件地启用操作

使用配置文件我想让自己打开和关闭诸如(第三方)日志记录和在C#网站中使用缓存之类的东西.解决方案不应该仅限于日志记录和缓存,而是更一般的,所以我也可以将它用于其他事情.

我有一个XML配置文件中,我可以断言,日志记录和缓存应该被打开或关闭(也有可能是在web.config中,这不是问题的关键,现在),这将导致例如bool loggingbool cachingtruefalse.

问题是关于这一部分: 我可以做的是在每个日志/缓存相关语句前面加上if (logging)if (caching).有什么更好的编程方式?是否还有针对此类问题的编程术语?也许属性也是一种方式去?

c#

1
推荐指数
1
解决办法
256
查看次数

最好的Java GUI编辑器

我知道没有什么叫做最好的Java IDE(Eclipse,NetBeans等).每个人都有自己的特色.

但是当GUI编辑器(可视化编辑器)出现时,有一些有趣的项目; 我很想知道哪一个是最推荐的.

我不是要求一个完整的IDE,我要求任何允许我编辑Java GUI(不一定是Swing)的IDE的任何GUI编辑器或插件.我也是开放的商业替代品,它不必是免费的.

这个问题在某种程度上接近我的问题(我在问之前没有注意到它,但我希望任何寻找类似事情的人都能从这两个问题中受益).

java ide user-interface editor

5
推荐指数
0
解决办法
2万
查看次数