我在 IIS 上有一个站点,通过在所有(经典)asp 页面中包含标头来完成身份验证,如果未设置会话变量,则用户将被重定向到登录页面,如果用户在 sql 表中则设置会话变量。但是,这并不能保护没有该头文件的图像和 javascript 等资源。
那么是否可以使用基本身份验证在 IIS 服务器上的用户表中执行 sql 查找?
注意:用户不是 sql 用户,它们只是常规表中的条目。
我在 IIS 上有一个站点,通过在所有(经典)asp 页面中包含标头来完成身份验证,如果未设置会话变量,则用户将被重定向到登录页面,如果用户在 sql 表中则设置会话变量。但是,这并不能保护没有该头文件的图像和 javascript 等资源。
那么是否可以使用基本身份验证在 IIS 服务器上的用户表中执行 sql 查找?
注意:用户不是 sql 用户,它们只是常规表中的条目。
当 ASP(经典、VBScript)页面上发生错误时,生成的错误消息(如果设置为显示错误响应)以及完整的FREB 日志(如果您已打开)显示已处理的行号发生错误的 ASP 文件。
这非常有用,因为您可以查看文件,找到错误并修复它。或者至少,如果您的 ASP 文件只是一个不包含任何其他文件的文件,则可以。
另一方面,如果您的文件确实有任何<!-- #include -->
包含其他文件的指令,那么事情就不那么有用了。由于 ASP/IIS 包含在文件处理之前发生,因此行号不是磁盘上任何实际文件中的实际行号,而是由复制到主文件中的所有包含文件组成的文件中的行号各自的位置。当你有一个顶部有大约 30 个包含指令的文件,然后你被告知在第 592 行有一个错误,你最终完全不知道该行在哪个物理文件中,你只剩下 30文件,直到找到正确的文件。
不幸的是,据我所知,无法检索有关特定行最初属于哪个文件的信息,因此无法获得完全有用的错误消息版本。
但是服务器至少应该可以提供它实际正在处理的页面的源代码,以便您可以查看它,找到第 592 行并至少知道导致错误的行的内容和上下文是。
我不希望这可以在输出到浏览器的错误消息中提供(这将是一个明显的、巨大的安全漏洞),但它肯定应该很容易包含在包含成千上万的失败请求跟踪中关于文件执行的其他所有细节的行。可悲的是,我还没有找到真正做到这一点的方法。
有没有办法指示 IIS 提供已编译的 ASP 文件(作为纯文本)作为失败请求跟踪的一部分,以便错误消息中的行号实际上有用?
如何使用 powershell 在 IIS 8.5 中设置经典 ASP 会话超时?
我已经看过使用Set-WebConfigurationProperty
但无法弄清楚如何正确使用它。
Windows 10、IIS 10、经典 ASP、.NET v2.0 经典
多年来一直在我的测试机器上使用 Windows 7 的自定义 404 错误页面在 Windows 10 的 IIS 中不再工作。我在 IIS 错误页面中设置了所有内容。
这是我来自 web.config 文件的代码。
<httpErrors errorMode="Custom" defaultPath="/MyDomain.org/error/404.asp" defaultResponseMode="ExecuteURL">
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" path="/MyDomain.org/error/404.asp" responseMode="ExecuteURL" />
</httpErrors>
这是 IIS 中的虚拟站点,因此必须存在域名。这没用。我加载页面,我唯一得到的是。
找不到这个 192.168.2.12 页面
没有找到该网址的网页:http: //192.168.2.12/ask/ASP_Classic/
我需要测试这些页面以更新我们的网站。关于 IIS 10 中发生了什么变化的任何想法,这会导致 404 页面不再工作?
我在 DMZ 中有 2 个 win2k3 服务器,没有域。服务器 A 托管一个经典的 ASP 站点,需要将一些文件保存在服务器 B 的共享上。
已在服务器 A 和服务器 B 上使用相同的用户名/密码创建用户帐户 (testshare)。
在服务器 A 上的 IIS 中创建了一个虚拟目录。在 IIS 的“目录安全 > 身份验证和访问控制”选项卡中,已将“testshare”帐户分配为用户,并且未选中集成的 Windows 安全性。应用程序池已创建并分配给此虚拟目录,并且“testshare”帐户已配置为应用程序池标识。
服务器 B 创建了一个共享 (\ServerB\Share001),并对该共享设置了“Everyone”权限,并对该共享设置了 NTFS 文件权限。
当我登录到服务器 A 时,我可以在 Windows 资源管理器中键入“\ServerB\Share001\”,然后查看共享。
当我尝试从服务器 A 上的虚拟目录中的 ASP 脚本访问共享时,我收到“找不到路径”错误。
当我查看服务器 B 的事件日志来跟踪错误时,我发现:
登录失败:
原因:未知的用户名或密码错误
用户名:IUSR_SERVERA
域:SERVERA
我希望用户名是“testshare”,而不是“IUSR_SERVERA”。
我还希望共享能够正常工作,无论访问它的用户帐户如何,因为它设置了“所有人”权限。
任何人都可以提供一些调试的指针吗?
谢谢杰克
编辑
我最初只分配了共享的“testshare”帐户权限。当这不起作用时,我分配了“所有人”权限。我不想设置“所有人”权限,我刚刚启用它以查看它是否是与该帐户相关的权限。由于设置了“所有人”权限,因此看起来像是我无法诊断的其他内容。
我们有一个在 IIS 7 上设置的网站,正在尝试用一个新网站替换它,但需要一个已删除的重定向。
旧站点使用自定义文件作为主页 (WN-main.asp)。我们删除了所有旧站点文件,包括 web.config,并将它们放在一个子目录中以便安全保存。
新站点不再使用 ASP,我们希望使用常规的 index.html 作为默认站点。然而,当我们访问该网站时,它一直试图将我们的 .com 重定向到 .com/WN-main.asp——这给我们“默认网站”应用程序带来了 404 错误,因为我们删除了该页面。
在 IIS 的“默认文档”设置中,index.html 位于顶部,而 WN-main.asp 在列表中无处可寻(它从未存在过)。我们还从根目录中删除了 web.config 文件,并将整个旧网站放在一个子目录中。以及重新启动的 IIS。我们假设重定向是在 IIS 中的某处设置的,因为如果我导航到我们的新站点 .com/index.html,它就可以工作。我们的问题是 oursite.com 重定向到 oursite.com/WN-main.asp。呃。如果您访问 www.worzalla.com,您可以看到它如何立即重定向到 WN-main.asp 页面作为主页。
可以设置此重定向以便我们删除它的任何想法?
谢谢!
我已经安装了跟踪功能并为网站启用了失败的请求跟踪,以调试经典 ASP 网站。XML 日志是在发生错误时创建的,但是当我在 IE 中打开它们时,我没有得到漂亮的蓝色界面,而是得到了大量的代码/文本。
为什么界面不加载,我该如何解决?
不确定我是否真的在正确的论坛上,但如果不是,请告诉我。我有一个用经典 ASP 编码的页面,用于发送电子邮件。我们目前遇到的问题是有时页面似乎被发送了两次。经过检查,我们发现有这个问题的人来自大型组织,因此建议他们的服务器可能出于某种原因缓存文件。
我想知道,HTML(或经典 ASP)中有没有办法防止这种情况发生?还是必须在 IIS 中进行设置?
谢谢,
我想做的很简单。我有一些经典的 ASP,其中包含以下引用 MDAC 2.5 的标头:
METADATA TYPE="TypeLib" NAME="Microsoft ActiveX Data Objects 2.5 Library" UUID="{00000205-0000-0010-8000-00AA006D2EA4}" VERSION="2.5"
现在,我尝试使用 MDAC 2.8 在带有 IIS 7 的 Windows 2008 机器上调用这个相同的包含文件:
METADATA TYPE="typelib" NAME="Microsoft ActiveX Data Objects 2.8 Library" UUID="{2A75196C-D9EB-4129-B803-931327F72D5C}" VERSION="2.8"
我的问题是,为什么这不再起作用了?标签引用是否已更改?我运行了 MDAC 检查器,一切都安装正确。我错过了什么?
提前致谢!
我正在尝试将经典 ASP 应用程序迁移到 Windows 2008 R2 服务器上。
应用程序功能运行良好,但我遇到了会话问题。
该应用程序将登录的用户信息保存在会话中,并且我经常被淘汰,好像会话已过期。
在调试时,我发现会话没有过期,而是一个浏览器正在使用 2-3 个不同的会话 ID。
我在应用程序的各个页面上输出 Response.Write(Session.SessionID),我可以坐在那里一遍又一遍地点击刷新,观察这 2-3 个 SessionID 之间随机变化的数字。
会话仍然有效,因为当我刷新并获取我在页面下登录的会话 ID 时(因为安全检查成功),当我获得其他会话 ID 之一时,我得到“你没有登录在,您需要登录”消息。
如果我关闭并重新打开浏览器,同样的故事只是一组 ID 是新的。
来自多台计算机的 IE8、Firefox 和 Chrome 会发生这种情况。
我尝试过的事情:
- AppPool 设置为无托管代码和经典
- 输出缓存设置 .asp 从不缓存
- 启用和禁用 ASP 会话属性并确认它影响页面(在禁用时尝试读取 Session.SessionID 时出错)
我尝试过的事情以防万一但与 ASP 会话无关:
- 禁用压缩
- 更改了 ASP.Net 会话状态属性(InProc、StateServer、SQLServer、Cookie、URI 等) -