ASP.NET 表单身份验证 - JavaScript 登录页面错误(匿名用户访问时)
ASP.NET Forms Authentication - JavaScript errors on Login page (when anonymous users visit)
仅在我的登录页面上我收到 18 JavaScript 个错误,主要错误似乎是:'ASP.NET Ajax client-side framework failed to load.' 我感觉这与安全性有关,因为我最近刚刚添加了表单身份验证到网站。如果我登录,所有错误都会消失。
当此行尝试 运行 :
时,似乎 sys 未定义
if (typeof(Sys) === 'undefined') throw new Error('ASP.NET Ajax client-side framework failed to load.');
我的 Web.config 中有以下内容:
<authentication mode="Forms">
<forms name=".FormsAuthCookie" loginUrl="Security/Login" protection="All" timeout="120" cookieless="AutoDetect" />
</authentication>
<authorization>
<deny users="?"/>
</authorization>
添加 deny users="?" 后的主要问题:
ASP.NET Ajax 当匿名用户访问网站时,客户端框架无法加载到我的 Login.aspx 页面。
更新:::
这真的没有多大意义,但是在将 EnableCdn="true" 添加到我的脚本管理器之后,当匿名用户访问登录页面时,我没有收到任何错误....这似乎是一个黑客攻击我的实际问题是因为这是一个干净的 .net webforms 项目。
<asp:ScriptManager runat="server" EnableCdn="True">
听起来身份验证阻止了对 javascript 库的访问。如果您在 chrome 中查看网络选项卡,您是否在加载 js 文件时遇到任何错误?如果是这样,我会说在配置文件中的目录中添加一个例外。
类似于:
<location path="js">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
我认为 CDN 工作的原因是因为文件是从 CDN 加载的,而不是你的应用程序,所以 CDN 服务器不需要身份验证。
根据上面接受的答案,如果您使用 Visual Studio 2015 ASP.NET 4.5 WebForms Application[=28=,则需要 web.config
配置] 项目模板:
<location path="bundles">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
bundles
文件夹实际上并不存在,而是捆绑脚本的虚拟路径。有关详细信息,请参阅 App_Start\BundleConfig.cs
。
请注意,允许在 web.config
中访问 ScriptResource.axd
and/or WebResource.axd
就像在许多其他线程中一遍又一遍地建议的那样 不适用于 Visual Studio 2015 ASP.NET 4.5 WebForms 应用程序项目模板的捆绑设置。
仅在我的登录页面上我收到 18 JavaScript 个错误,主要错误似乎是:'ASP.NET Ajax client-side framework failed to load.' 我感觉这与安全性有关,因为我最近刚刚添加了表单身份验证到网站。如果我登录,所有错误都会消失。
当此行尝试 运行 :
时,似乎 sys 未定义if (typeof(Sys) === 'undefined') throw new Error('ASP.NET Ajax client-side framework failed to load.');
我的 Web.config 中有以下内容:
<authentication mode="Forms">
<forms name=".FormsAuthCookie" loginUrl="Security/Login" protection="All" timeout="120" cookieless="AutoDetect" />
</authentication>
<authorization>
<deny users="?"/>
</authorization>
添加 deny users="?" 后的主要问题: ASP.NET Ajax 当匿名用户访问网站时,客户端框架无法加载到我的 Login.aspx 页面。
更新:::
这真的没有多大意义,但是在将 EnableCdn="true" 添加到我的脚本管理器之后,当匿名用户访问登录页面时,我没有收到任何错误....这似乎是一个黑客攻击我的实际问题是因为这是一个干净的 .net webforms 项目。
<asp:ScriptManager runat="server" EnableCdn="True">
听起来身份验证阻止了对 javascript 库的访问。如果您在 chrome 中查看网络选项卡,您是否在加载 js 文件时遇到任何错误?如果是这样,我会说在配置文件中的目录中添加一个例外。
类似于:
<location path="js">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
我认为 CDN 工作的原因是因为文件是从 CDN 加载的,而不是你的应用程序,所以 CDN 服务器不需要身份验证。
根据上面接受的答案,如果您使用 Visual Studio 2015 ASP.NET 4.5 WebForms Application[=28=,则需要 web.config
配置] 项目模板:
<location path="bundles">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
bundles
文件夹实际上并不存在,而是捆绑脚本的虚拟路径。有关详细信息,请参阅 App_Start\BundleConfig.cs
。
请注意,允许在 web.config
中访问 ScriptResource.axd
and/or WebResource.axd
就像在许多其他线程中一遍又一遍地建议的那样 不适用于 Visual Studio 2015 ASP.NET 4.5 WebForms 应用程序项目模板的捆绑设置。