簡體   English   中英

ASP.NET表單身份驗證-登錄頁面上的JavaScript錯誤(匿名用戶訪問時)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM