При использовании тега авторизации страница отображается в виде обычного текста. - PullRequest
0 голосов
/ 19 марта 2011

Я новичок в веб-технологиях, и мой опыт чисто C #.Я получил HTML-дизайн от веб-дизайнера, и я строю над ним и учусь на ходу.

У меня есть несколько веб-страниц для авторизованного доступа и другие для анонимных пользователей

Кроме того, я узнал, что отказ в доступе для анонимных пользователей осуществляется путем добавления тега авторизации с использованием следующего изменения в webconfig

<system.web>
  <authentication mode="Forms">
    <forms loginUrl="logon.aspx" name=".ASPXFORMSAUTH">
    </forms>
  </authentication>
  <authorization>
    <deny users="?" />
  </authorization>
</system.web>

Однако есть и другие страницы, кроме страницы входа, которые должны разрешить доступ для всех пользователей, например страницы регистрации

Поэтому я узнал от msdn, что мне нужно добавить тег местоположения, который указываетПапка для этих страниц Я создал папку с именем «Auth» и добавил эти страницы, чтобы мой web.confile выглядел примерно так:

<location path="Auth">
        <system.web>
            <authorization>
                <deny users="?" />
            </authorization>
        </system.web>
    </location>

    <system.web>
        <authentication mode="Forms">
            <forms loginUrl="logon.aspx" name=".ASPXFORMSAUTH">
            </forms>
        </authentication>
    </system.web>

Наконец, проблема в том, что после входа в систему и во время отладки страницы авторизованного доступаотображаются в виде простого текста без форматирования!Кто-нибудь может сказать, почему это происходит?

1 Ответ

1 голос
/ 19 марта 2011

Полагаю, под "обычным текстом" вы имеете в виду, что вы можете нормально просматривать свой HTML, но он не стилизован в соответствии с CSS-файлом дизайнера (или вашего).

Если вам приходилось перемещать страницыв папке Auth, возможно, это сломало ссылку на файл CSS, на который ссылалась страница.

Используя следующую структуру примера

\ - Root of App
\ Auth- Содержит страницы, к которым у вас нет доступа
\ Styles - Содержит ваши CSS-файлы (и изображения?)
\ Styles \ FileName.css - Ваш CSS-файл со всей прелестной магией
\ Logon.aspx - Содержит вашиформа входа
\ Default.aspx - содержит вашу страницу по умолчанию, к которой все могут получить доступ

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

<link rel="Stylesheet" type="text/css" href="Styles/FileName.css">

Но теперь, когда вы переместили страницы, эта ссылка не указывает на тот же файл.Измените его на абсолютный путь, или в вашем случае вы можете использовать корневой путь приложения asp.net .... вот так (для всех страниц):

<link rel="Stylesheet" type="text/css" href="~/Styles/FileName.css">

или

<link rel="Stylesheet" type="text/css" href="/Styles/FileName.css">

Или, если ни один из них не работает, для страниц внутри вашей папки аутентификации, просто используйте синтаксис верхнего уровня

<link rel="Stylesheet" type="text/css" href="../Styles/FileName.css">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...