простые веб-части в asp.net отображаются как пустая страница

Я пытаюсь разрабатывать веб-части в VS 2008/WinXP.

Я создал проект веб-сайта и добавил несколько веб-частей в форму по умолчанию в default.aspx.

<form id="form1" runat="server">
<div>
    <asp:WebPartManager ID="WebPartManager1" runat="server">
    </asp:WebPartManager>    
    <asp:WebPartZone ID="WebPartZone1" runat="server">
    </asp:WebPartZone>    
</div>
</form>

Когда я впервые запустил его (в отладчике), во всплывающем окне мне было предложено включить аутентификацию Windows в IIS (значит, что-то работает!). Я включил аутентификацию Windows, и теперь, когда я запускаю ее, я получаю пустой экран. Тот же результат, если я открою его в IE через URL-адрес (а не в отладчике).

Примечание. В представлении исходного кода много кода JavaScript, в частности, он объявляет объект WebPartManager и добавляет к нему зону (__wpm.AddZone(..))


person Stephen Hosking    schedule 20.04.2010    source источник


Ответы (1)


Из-за контроля учетных записей пользователей Windows (UAC) при работе с Windows Vista или Windows Server 2008 локальная группа администраторов будет вести себя иначе, чем другие группы. Атрибут не будет правильно распознавать члена локальной группы администраторов, если вы не измените настройки UAC вашего компьютера.

То, что именно происходит, когда вы пытаетесь вызвать действие контроллера без правильных разрешений, зависит от включенного типа аутентификации. По умолчанию при использовании сервера разработки ASP.NET вы просто получаете пустую страницу. Страница обслуживается со статусом 401 Not Authorized HTTP Response.

Если, с другой стороны, вы используете IIS с отключенной анонимной аутентификацией и включенной базовой аутентификацией, вы продолжаете получать диалоговое окно входа в систему каждый раз, когда запрашиваете защищенную страницу.

person Steav    schedule 20.04.2010
comment
Это из-за Персонализации? если да, то можно ли его отключить? спасибо - person Gabriel Guimarães; 27.04.2010
comment
под персонализацией вы имеете в виду, что веб-части работают только тогда, когда включена какая-либо идентификация сайта или вход в систему? Насколько я понимаю, это необходимо, поэтому это не работает с анонимным входом в систему. Я заработал, включив проверку подлинности Windows, а затем установив WebPartManager.DisplayMode. - person Stephen Hosking; 28.04.2010
comment
Спасибо! Следуя этому... 1. Это не будет работать с анонимной аутентификацией (в IIS-›‹сайт›-›Свойства-›Безопасность каталога-›Анонимный доступ a...) 2. С аутентификацией Windows это работает в отладчик (F5), но только с текущим идентификатором входа. 3. При базовой аутентификации он запрашивает идентификатор пользователя и пароль, но не работает в отладчике (т.е. запускает его с URL-адресом локального хоста в браузере). 4. [ГЛАВНАЯ ПРОБЛЕМА] WebPartManager и WebPartZone сами по себе ничего показывать не будут - установите this.WebPartManager1.DisplayMode = WebPartManager.ConnectDisplayMode; и/или добавить веб-часть в зону. - person Stephen Hosking; 28.04.2010