Завершение SSL и ASP.NET

Переводы статьи Переводы статьи
Код статьи: 910444 - Vizualiza?i produsele pentru care se aplic? acest articol.
ASP.NET служба поддержки

Завершение SSL и ASP.NET

Для настройки этого столбца в соответствии с потребностями, мы хотим пригласить можно отправлять свои идеи по темам, которые интересуют вопросы, которые вы хотите увидеть и направлено в будущих статьях базы знаний и поддержка голосовой связи столбцов. Вы можете отправить свои идеи и с помощью обратной связи Попросите его форма. Также имеется ссылка на форму в нижней части этого столбца.
Развернуть все | Свернуть все

В этой статье

Добро пожаловать в ASP.NET поддержка голосовой столбца! Мое имя — Джерри Orman. Я уже более пяти лет с корпорацией Майкрософт и потратили большую часть моего времени на связанные с веб технологий, таких как Microsoft FrontPage и SharePoint продуктов и технологий Microsoft. Я провел последний год работы с Microsoft ASP.NET в качестве инженера технической поддержки. В этом месяце я собираюсь рассказать о завершении SSL и ASP.NET. В частности я хочу обратить внимание на проблемы, возникающие в результате настройки сервера. Мы собираемся взглянуть на прерывания и некоторые Побочные эффекты данной конфигурации в приложении.

Прерывания конфигурации, в котором выполнения кода в веб-сервер отправляет и принимает трафик по протоколу HTTP, и устройство между веб-сервером и клиентами с помощью шифрования и расшифровки данных. В этой конфигурации клиентов Отправка и получение трафика HTTPS. Конфигурация SSL завершение следующего вида:
Клиентское <— https="" —="">устройство SSL <— http="" —=""> веб-сервера</—></—>
Теперь давайте более чем двух проблем, которые поставляются в Microsoft ASP.NET 2.0 эта конфигурация и некоторые способы решения проблемы.

Выпуск 1

При наведении указателя на элемент меню в приложении ASP.NET 2.0 Меню элемент управления, Вы получите следующее сообщение об ошибке:
Эта страница содержит одновременно безопасные и небезопасные элементы. Вы хотите Показать небезопасные элементы?
Предполагается, что приложение для обеспечения безопасности при использовании протокола SSL, а не добавлены все элементы управления, которые отрисовывают абсолютный путь к HTTP адрес. В чем дело с этого сообщения?

Ну, проблема в том, Меню элемент управления создает некоторые JavaScript, который использует Интернет-кадра объект для построения Вспомогательное раскрывающееся меню. Вы должны предоставить рамки начальный URL-адрес. Во избежание внесения сценарий использует ненужных цикла обработки на сервере для не-SSL-сценариев о: пустое URL-адреса. Тем не менее браузер считает это небезопасный адрес, чтобы получить выше сообщение об ошибке. Для получения дополнительных сведений об этой проблеме на основе Microsoft Windows SharePoint Services щелкните следующий номер статьи базы знаний Майкрософт:
837850Появляется сообщение «Эта страница содержит как безопасные, так и небезопасные элементы» выберите представление «Проводник» библиотеки документов в Windows SharePoint Services или службы SharePoint Team Services корпорации Майкрософт
Явно упомянуть сценарии не-SSL-потому что, если веб-сервер принимал трафика HTTPS вместо устройства SSL, JavaScript, Меню Создает элемент управления добавить строку кода в качестве источника Интернет-кадра объект для HTTPS-адрес страницы на сервере. Это запускает другой запрос, но не позволяет сообщение об ошибке. Если при развертывании в данной среде, можно принудительно добавлением JavaScript можно предотвратить путем добавления этого кода сообщение об ошибке на страницу, которая имеет Меню элемент управления.
 <script runat="server">
   protected override void Render(HtmlTextWriter writer) 
   {
        Page.ClientScript.RegisterStartupScript(typeof(Page), "MenuHttpsWorkaround", 
        Menu1.ClientID + "_Data.iframeUrl='https://myserver/someblankpage.htm';", true);
        base.Render(writer);
   }
</script>
 
В идеале, имеется меню MasterPage класс или Пользовательских элементов управления класс, и добавить этот код только один раз.

Проблема 2

Возможно, при наличии requireSSL атрибут <forms></forms> значение элемента ИСТИНА, сервер отвечает с повторяющимися перенаправляет на FormsAuthentication страница входа. Причиной этого является изменение способа FormsAuthenticationModule метод обработки requireSSL атрибут. Если вы Установка requireSSL для атрибута ИСТИНА, FormsAuthenticationModule метод создает объект «cookie» имеющий безопасность набор атрибутов. (Это поведение будет таким же, как и в.NET Framework 1.1.) При использовании безопасностьатрибут, клиент будет проходить cookie на сервер при клиент использует протокол SSL. Эту часть отлично, потому что действительно с помощью клиента ПРОТОКОЛ SSL. Давайте предположим, что имеется страница SecurePage.aspx, анонимные пользователи не могут получить доступ. С помощью протокола SSL и requireSSL атрибут, заканчивается следующий трафик на начальном запросе к SecurePage.aspx:
— > Клиент делает запрос GET для SecurePage.aspx.

<—server responds="" with="" an="" http="" 302="" (redirect)="" to="" the="" login="" page.=""></—server>

— > Клиент делает запрос GET для Login.aspx.

<—server responds="" with="" a="" 200="" ok.="" the="" login="" page="" is="" rendered="" to=""></—server>

— > Клиент выполняет запрос POST Login.aspx.

<—server responds="" with="" a="" 302="" (redirect)="" to="" securepage.aspx.="" set="" cookie="" header="" is="" sent="" with=""></—server> безопасность атрибут для клиента.

— > Клиент делает запрос GET для SecurePage.aspx. Файл cookie передается, потому что клиент использует протокол SSL.

<—server responds="" with="" a="" 302="" (redirect)="" back="" to="" the="" login=""></—server>

Получить переадресации последний запрос из-за изменений в очередь FormsAuthenticationModule класс. Дополнительная проверка была добавлена в ASP.NET 2.0, чтобы определить ли пользователь передает безопасные cookie по сравнению с не-SSL-запросов. ASP.NET 2.0 возвращает FormsAuthenticationTicket класс, если FormsAuthentication.RequireSSL свойство имеет значение ЛОЖЬ или, если Request.IsSecure атрибут имеет значение ИСТИНА.
  • В FormsAuthentication.RequireSSL свойство имеет значение ЛОЖЬ Если флажок рядом с надстройкой requireSSL атрибут имеет значение ЛОЖЬ в файле конфигурации.
  • В Request.IsSecure атрибут имеет значение ИСТИНА Если веб-сервер принимает трафик SSL.
Поскольку, в этом случае веб-сервер не получает трафик SSL и очередь requireSSL атрибут имеет значение ИСТИНА, вернуть обе проверки ЛОЖЬ. В результате FormsAuthenticationTicket класс не возвращается и удаления файлов cookie из Request.cookies Коллекция.

Пользователь делает запрос является анонимным в этот момент потому, что сервер еще не проверяются учетные данные пользователя. Поскольку запрос проходит через ASP.NET конвейера очередь UrlAuthorizationModule класс проверяет, имеет ли пользователь доступ к страницы. Поскольку анонимный пользователь не имеет доступа к странице SecurePage.aspx, UrlAuthorizationModule класс возвращает сообщение об ошибке 401 («доступ запрещен»), что приводит к перенаправление на страницу входа.

Чтобы избежать этого, сначала имеется для удаления requireSSL атрибут из <forms></forms> тег конфигурации файл. Необходимо задать программным путем безопасность атрибут FormsAuthenticationфайл «cookie». Следующий код делает это для вас, как для FormsAuthentication файл «cookie» и Сеанс файл «cookie».
void Application_EndRequest(object sender, EventArgs e)
{
     if (Response.Cookies.Count > 0)
     {
          foreach (string s in Response.Cookies.AllKeys)
          {
               if (s == FormsAuthentication.FormsCookieName || s.ToLower() == "asp.net_sessionid")
               {
                    Response.Cookies[s].Secure = true;
               }
          }
     }
}

Ссылки

Для получения дополнительных сведений о Меню управлять, посетите следующий веб-узел Microsoft Developer Network (MSDN):
http://msdn2.Microsoft.com/en-us/library/2xt3t8a7 (vs.80) .aspx
Для получения дополнительных сведений о requireSSL атрибут FormsAuthentication.RequireSSL свойство, посетите веб-узле MSDN:
http://msdn2.Microsoft.com/en-us/library/System.Web.Security.FormsAuthentication.requireSSL.aspx
Для получения дополнительных сведений о IsSecure атрибут HttpRequest.IsSecureConnection свойство, посетите веб-узле MSDN:
http://msdn2.Microsoft.com/en-us/library/System.Web.HttpRequest.issecureconnection (vs.71) .aspx
Для получения дополнительных сведений о FormsAuthenticationModule класс, посетите веб-узле MSDN:
http://msdn2.Microsoft.com/en-us/library/System.Web.Security.FormsAuthenticationModule.aspx
Для получения дополнительных сведений о UrlAuthorizationModule класс, посетите веб-узле MSDN:
http://msdn2.Microsoft.com/en-us/library/System.Web.Security.URLAuthorizationModule.aspx


Я надеюсь, что вы эти сведения полезны при использовании SSL увольнения и ASP.NET. Помните, что столбцы Поддержка голосовой связи, для вас! Как всегда вы можете отправить идеи по темам, которые должны направлено в будущих статьях или использование знаний Попросите его форма.

Свойства

Код статьи: 910444 - Последний отзыв: 18 июня 2011 г. - Revision: 4.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft ASP.NET 2.0
Ключевые слова: 
kbhowto kbasp kbmt KB910444 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:910444
Заявление об отказе относительно содержимого статьи о продуктах, поддержка которых прекращена
Эта статья содержит сведения о продуктах, поддержка которых корпорацией Майкрософт прекращена. Поэтому она предлагается как есть и обновляться не будет.

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com