ASP.NET Forms Authentication - ошибки JavaScript на странице входа (при посещении анонимными пользователями)
Только на моей странице входа в систему я получаю 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>
ОСНОВНАЯ ПРОБЛЕМА после добавления deny users="?": Клиентская среда ASP.NET Ajax не загружается на мою страницу Login.aspx, когда анонимный пользователь посещает сайт.
ОБНОВИТЬ:::
Это действительно не имеет особого смысла, но после добавления EnableCdn="true" в мой диспетчер скриптов я не получаю никаких ошибок, когда анонимный пользователь заходит на страницу входа в систему.... Просто кажется, что это взлом для любого моего фактического проблема в том, что это чистый проект.net webforms.
<asp:ScriptManager runat="server" EnableCdn="True">
2 ответа
Похоже, аутентификация блокирует доступ к библиотеке JavaScript. Если вы просматриваете вкладку сети в Chrome, вы получаете какие-либо ошибки при загрузке файлов JS? если это так, я бы сказал, добавить исключение в каталог в вашем файле конфигурации.
Что-то вроде:
<location path="js">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
Я думаю, что причина CDN работает в том, что файлы загружаются из CDN в отличие от вашего приложения, поэтому для сервера CDN не требуется аутентификация.
Основываясь на принятом ответе выше, здесь web.config
Конфигурация необходима, если вы работаете с шаблоном проекта приложения Visual Studio 2015 ASP.NET 4.5 WebForms:
<location path="bundles">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
bundles
папка не существует физически, но является виртуальным путем для связанных сценариев. Увидеть App_Start\BundleConfig.cs
для дополнительной информации.
Обратите внимание, что разрешение доступа к ScriptResource.axd
и / или WebResource.axd
в web.config
как предложено снова и снова во многих других потоках, просто не будет работать с настройкой связывания шаблона проекта Visual Studio 2015 ASP.NET 4.5 WebForms Application.