Applet加载身份validation

我有一个在IIS 7.5上运行的网站,带有集成的Windows身份validation。 在/Content文件夹(具有匿名访问权限)中有一个applet – MyApplet.jar 。 使用此applet时,Java显示“需要身份validation”弹出窗口(即使我选中“记住”复选框,此弹出窗口也不记得我的密码)。

有没有办法删除这个窗口?

这是加载applet之前的Java控制台:

 network: Cache entry not found [url: http://192.168.10.136/Web/Examination.mvc/Details/PatientEHR/META-INF/services/org.apache.xerces.xni.parser.XMLParserConfiguration, version: null] network: Connecting http://192.168.10.136/Web/Examination.mvc/Details/PatientEHR/META-INF/services/org.apache.xerces.xni.parser.XMLParserConfiguration with proxy=DIRECT network: Connecting http://192.168.10.136:80/ with proxy=DIRECT network: Connecting http://192.168.10.136/Web/Examination.mvc/Details/PatientEHR/META-INF/services/org.apache.xerces.xni.parser.XMLParserConfiguration with cookie "JCP-store=HDImageStore; JCP-key=Inf_WOPass" network: Firewall authentication: site=/192.168.10.136:80, protocol=http, prompt=, scheme=ntlm 

我看起来你的Applet正在做一些XML解析。 如果是这样,那么正在发生的是Java正在寻找一个XML解析器(使用getClass()。getResource(…)),并且作为applet的路径,它将向您的服务器执行HTTP请求。

为了防止这种情况,您可能希望在applet的init方法中定义XML解析器

  Class.forName("com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl"); System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl"); 

从Java6u10开始,您还可以选择从类路径(但不是Applet)中删除Applet的路径。

    

安东尼

从我有限的经验和研究来看,这更多地与客户端Java桥而不是服务器端有关。 您可以尝试在客户端计算机上禁用下一代插件,以查看它是否有帮助。

Windows:控制面板> Java>高级选项卡> Java插件>(取消选中)启用下一代…

如果这不起作用,或者修改客户端设置是不可行的,作为一种解决方法,您可以从身份validation中排除applet。 applet可以调用javascript与浏览器执行的服务器通信,从而避免了可怕的java身份validation对话框。 只要您的业务逻辑在服务器上进行适当的检查和身份validation(他们应该),就不应该发布安全风险。