![](/img/trans.png)
[英]ASP.NET Forms Authentication prevents loading javascript on Login.aspx
[英]ASP.NET Forms Authentication - JavaScript errors on Login page (when anonymous users visit)
在我的“登錄”頁面上,僅出現18個JavaScript錯誤,主要的錯誤似乎是:“ ASP.NET Ajax客戶端框架加載失敗。” 我感覺這與安全性有關,因為我最近才向該站點添加了表單身份驗證。 如果我登錄,所有錯誤都會消失。
當此行嘗試運行時,似乎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>
添加拒絕用戶=“?”后的主要問題:當匿名用戶訪問站點時,ASP.NET Ajax客戶端框架無法在我的Login.aspx頁面上加載。
更新:::
這確實沒有多大意義,但是在將EnableCdn =“ true”添加到我的腳本管理器后,當匿名用戶訪問登錄頁面時,我不會出現任何錯誤。...好像這對我的實際情況來說都是一個hack問題是因為這是一個干凈的.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應用程序項目模板,則此處是所需的web.config
配置:
<location path="bundles">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
bundles
文件夾實際上並不存在,而是捆綁腳本的虛擬路徑 。 有關更多信息,請參見App_Start\\BundleConfig.cs
。
請注意,在許多其他線程中一遍又一遍地建議再次允許訪問web.config
ScriptResource.axd
和/或WebResource.axd
,這對於Visual Studio 2015 ASP.NET 4.5 WebForms應用程序項目的捆綁安裝是不起作用的 。模板。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.