none
ISA 2006 + SharePoint2007 (ошибка доступа при использовании кирилицы в URL) RRS feed

  • Вопрос

  • Добрый день, коллеги!
    не уверен, что вопрос на 100% по адресу..  но скорее все-таки сюда.

    есть сервер 1: Win2003 std, Shaperoint Server 2007 (MOSS) на нем сайт и несколько библиотек - все исключительно по https.
    есть сервер 2: Win2003 std, ISA 2006 SP1
    соответственно на ISA опубликована вся ферма (состящая из 1го сервера пока), авторизация form-based, NTLM. публиковалось все стандартным мастером и собственно все работет почти как надо.

    есть библиотека документов (это раздел портала) в нем древовидная стректура папок. 
    народ подключается, авторизуется, попадает в портал видит и работает с документами как ему это удобно, до тех пор пока...
    ... пока не встречается папака с кирилицей в названии.

    пытаясь залить новый документ встроенными средствами в эту папку, у пользователя в IE-7/8 вылетает ошибка 500.
    Error Code: 500 Internal Server Error. The server denied the specified Uniform Resource Locator (URL). Contact the server administrator. (12202) 
    
    

    при этом в ISA отлавливается ошибка
    Denied Connection SERVER 15.07.2009 17:01:12 
    
    Log type: Web Proxy (Reverse) 
    
    Status: 12232  
    
    Rule: MOSS (SSL) 
    
    Source: (80.247.***.***) 
    
    Destination: (192.168.***.***:443) 
    
    Request: POST http://portal.domain.ru/_layouts/Upload.aspx?List={_CUT_}C58BA1E5002D%257d 
    
    Filter information: Req ID: 0af87e73; Compression: client=Yes, server=No, compress rate=0% decompress rate=0% ; FBA cookie: exists=no, valid=no, updated=no, logged off=no, client type=unknown, user activity=yes 
    
    Protocol: https 
    
    User: anonymous 
    
     Additional information 
    
    Client agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
    
    Object source: (No source information is available.)
    
    Cache info: 0x0
    
    Processing time: 1 ms
    
    MIME type: 
    основной вопрос возникает - почему вдруг нормально работающий и авторизованный пользователь вдруг становится "User: anonymous"

    далее допы:
    залить в папку не содержащую кирилицу в названии - проблем нет
    залить в папку даже с кирилицей можно используя Firefox 3.5 О_О

    почему пишу в раздел форума посвященный ISA? все-таки ошибка вываливается в логах ISA. внутренние клиенты, которые ходят не через ISA тоже в порядке.

    Воот..  думаю, что где-то проблема возможно в настройках HTTP filter. а может и нет. вобщем идеи пока кончились.
    может кто сталкивался?



    • Изменено -MnA- 22 июля 2009 г. 10:51
    15 июля 2009 г. 13:29

Ответы

  • Ну чтож, коллеги.

    по данному вопросу обратился за советом в support microsoft

    получил информацию о том, что надо воспользоваться статьей kb940248 

    When a user accesses a SharePoint Web site that is published in Microsoft Internet Security and Acceleration (ISA) Server 2006,
    ISA Server 2006 SP1 or in Windows Essential Business Server 2008, the user may receive one of the following error messages:
    Error message 1 HTTP 401 Unauthorized Error message 2 HTTP 500 The server denied the specified Uniform Resource Locator (URL). Contact the server administrator. This problem occurs when the following conditions are true: In the Web listener that the SharePoint Web publishing rule uses, HTML Form Authentication is configured. The Web client sends a POST request to the SharePoint Web site. The URL of the POST request contains extended characters. For example, the URL contains é, à, or è.
    .

    для пользователей без SP1 надо сначала применить хотфикс и затем выполнить скрипт:
    для тех у кого SP1 уже установлен - только выполнить скрипт.

    .

    Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEabc}"
    Const SE_VPS_NAME = "CookieFilterDecodeUEncoding"
    Const SE_VPS_VALUE = true
    
    Sub SetValue()
    
        ' Create the root obect.
        Dim root  ' The FPCLib.FPC root object
        Set root = CreateObject("FPC.Root")
    
        'Declare the other objects needed.
        Dim array       ' An FPCArray object
        Dim VendorSets  ' An FPCVendorParametersSets collection
        Dim VendorSet   ' An FPCVendorParametersSet object
    
        ' Get references to the array object
        ' and the network rules collection.
        Set array = root.GetContainingArray
        Set VendorSets = array.VendorParametersSets
    
        On Error Resume Next
        Set VendorSet = VendorSets.Item( SE_VPS_GUID )
    
        If Err.Number <> 0 Then
            Err.Clear
    
            ' Add the item
            Set VendorSet = VendorSets.Add( SE_VPS_GUID )
            CheckError
            WScript.Echo "New VendorSet added... " & VendorSet.Name
    
        Else
            WScript.Echo "Existing VendorSet found... value- " &  VendorSet.Value(SE_VPS_NAME)
        End If
    
        if VendorSet.Value(SE_VPS_NAME) <> SE_VPS_VALUE Then
    
            Err.Clear
            VendorSet.Value(SE_VPS_NAME) = SE_VPS_VALUE
    
            If Err.Number <> 0 Then
                CheckError
            Else
                VendorSets.Save false, true
                CheckError
    
                If Err.Number = 0 Then
                    WScript.Echo "Done with " & SE_VPS_NAME & ", saved!"
                End If
            End If
        Else
            WScript.Echo "Done with " & SE_VPS_NAME & ", no change!"
        End If
    
    End Sub
    
    Sub CheckError()
    
        If Err.Number <> 0 Then
            WScript.Echo "An error occurred: 0x" & Hex(Err.Number) & " " & Err.Description
            Err.Clear
        End If
    
    End Sub
    
    SetValue
    • Изменено -MnA- 22 июля 2009 г. 10:46
    • Помечено в качестве ответа -MnA- 22 июля 2009 г. 10:50
    22 июля 2009 г. 10:22

Все ответы

  • Пользователь анонимный, поскольку ISA его не аутентифицирует, а лишь является, если является, посредником аутентификации для опубликованного web-приложения.

    По поводу кириллицы. Попробуйте отменить "Block high bit сharacters" для фильтра HTTP, публикующего Ваше веб-приложение.
    Спасибо моей жене Кате, Клевогину С.П., Козлову С.В., Муравлянникову Н.А., Никитину И.Г., Шапиро Л.В. за мои знания! :)
    15 июля 2009 г. 14:24
    Отвечающий
  • всю остальную сессию пользователь остается авторизованным. авторизация исчезает на один этот запрос. и дальше можно продолжать работать ..
    только вот залить в такую папку чтолибо невозможно.

    по поводу фильтра - да там ограничения отключены и high bit и нормализация.

    полазил по сети, на isaserver.ru штук 15 аналогичных тем с аналогичными ситуациями. решенных нет
    по буржуйскому сегменту таких проблемм не встречал, видимо это наши локальные заморочки. 
    может это не сростается такая связка как MSIE+ISA+SharePoint , тогда как Firefox+ISA+Sharepoint работает корректно с русским контентом.

    15 июля 2009 г. 14:47
  • выложите скриншоты с правила публикации. Можете позатирать там имена - они не особо нужны. Я попробую сравнить со своими правилами.
    http://komatozo.blogspot.com
    15 июля 2009 г. 16:53
    Модератор
  • Вот примерно так..  фактически все по умолчанию..
    http://picasaweb.google.com/geo.mna/qeSppG?feat=directlink

    16 июля 2009 г. 5:43
  • А вкладки http филтра?
    http://komatozo.blogspot.com
    16 июля 2009 г. 9:46
    Модератор
  • добавил 4 скрина. итого 5, 14-17 скриншоты.
    16 июля 2009 г. 10:52
  • Ну чтож, коллеги.

    по данному вопросу обратился за советом в support microsoft

    получил информацию о том, что надо воспользоваться статьей kb940248 

    When a user accesses a SharePoint Web site that is published in Microsoft Internet Security and Acceleration (ISA) Server 2006,
    ISA Server 2006 SP1 or in Windows Essential Business Server 2008, the user may receive one of the following error messages:
    Error message 1 HTTP 401 Unauthorized Error message 2 HTTP 500 The server denied the specified Uniform Resource Locator (URL). Contact the server administrator. This problem occurs when the following conditions are true: In the Web listener that the SharePoint Web publishing rule uses, HTML Form Authentication is configured. The Web client sends a POST request to the SharePoint Web site. The URL of the POST request contains extended characters. For example, the URL contains é, à, or è.
    .

    для пользователей без SP1 надо сначала применить хотфикс и затем выполнить скрипт:
    для тех у кого SP1 уже установлен - только выполнить скрипт.

    .

    Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEabc}"
    Const SE_VPS_NAME = "CookieFilterDecodeUEncoding"
    Const SE_VPS_VALUE = true
    
    Sub SetValue()
    
        ' Create the root obect.
        Dim root  ' The FPCLib.FPC root object
        Set root = CreateObject("FPC.Root")
    
        'Declare the other objects needed.
        Dim array       ' An FPCArray object
        Dim VendorSets  ' An FPCVendorParametersSets collection
        Dim VendorSet   ' An FPCVendorParametersSet object
    
        ' Get references to the array object
        ' and the network rules collection.
        Set array = root.GetContainingArray
        Set VendorSets = array.VendorParametersSets
    
        On Error Resume Next
        Set VendorSet = VendorSets.Item( SE_VPS_GUID )
    
        If Err.Number <> 0 Then
            Err.Clear
    
            ' Add the item
            Set VendorSet = VendorSets.Add( SE_VPS_GUID )
            CheckError
            WScript.Echo "New VendorSet added... " & VendorSet.Name
    
        Else
            WScript.Echo "Existing VendorSet found... value- " &  VendorSet.Value(SE_VPS_NAME)
        End If
    
        if VendorSet.Value(SE_VPS_NAME) <> SE_VPS_VALUE Then
    
            Err.Clear
            VendorSet.Value(SE_VPS_NAME) = SE_VPS_VALUE
    
            If Err.Number <> 0 Then
                CheckError
            Else
                VendorSets.Save false, true
                CheckError
    
                If Err.Number = 0 Then
                    WScript.Echo "Done with " & SE_VPS_NAME & ", saved!"
                End If
            End If
        Else
            WScript.Echo "Done with " & SE_VPS_NAME & ", no change!"
        End If
    
    End Sub
    
    Sub CheckError()
    
        If Err.Number <> 0 Then
            WScript.Echo "An error occurred: 0x" & Hex(Err.Number) & " " & Err.Description
            Err.Clear
        End If
    
    End Sub
    
    SetValue
    • Изменено -MnA- 22 июля 2009 г. 10:46
    • Помечено в качестве ответа -MnA- 22 июля 2009 г. 10:50
    22 июля 2009 г. 10:22
  • Здорово. Спасибо за ответ.


    http://komatozo.blogspot.com
    22 июля 2009 г. 11:59
    Модератор
  • Столкнулся с абсолютно такой же проблемой, при загрузке файлов в проект с русским названием вылетает 500 Internal Server Error
    Однако после запуска скрипта ничего не изменилось.
    Стоит ISA 2006 SP1.

    Кстати в вышеупомянутом http://support.microsoft.com/kb/940248 в самом конце есть строчка:

    After you follow these steps, only the query part of the URL can contain extended characters. The query part follows the question mark (?) in the URL. The part that comes before the question mark in the URL cannot contain extended characters even after you use this resolution.

    Т.е. все это будет работать только если кирилические символы стоят после (?), у меня название папки(проекта) ведь идёт как раз до (?)

    В моем случае путь выглядит так:

    https://portal.server.ru/pwa/Структурный%20фасад%20Бибирево/_layouts/Upload.aspx?List=%7b9311D102-5C60-437A-AE2F-890678DE46F0%7d&RootFolder=%2fpwa%2f%u0421%u0442%u0440%u0443%u043a%u0442%u0443%u0440%u043d%u044b%u0439+%u0444%u0430%u0441%u0430%u0434+%u0411%u0438%u0431%u0438%u0440%u0435%u0432%u043e%2fProject+Documents&Source=https%3a%2f%2fportal.server.ru%2fpwa%2f%u0421%u0442%u0440%u0443%u043a%u0442%u0443%u0440%u043d%u044b%u0439+%u0444%u0430%u0441%u0430%u0434+%u0411%u0438%u0431%u0438%u0440%u0435%u0432%u043e%2fProject+Documents%2fForms%2fAllItems.aspx

    Т.е. получается здесь обойти проблему с кирилицей не получится?

    8 сентября 2009 г. 9:21
  • а галочка о которой выше писали в http фильтре снята?
    8 сентября 2009 г. 18:08
    Отвечающий
  • Столкнулся с абсолютно такой же проблемой, при загрузке файлов в проект с русским названием вылетает 500 Internal Server Error
    Однако после запуска скрипта ничего не изменилось.
    Стоит ISA 2006 SP1.

    Кстати в вышеупомянутом http://support.microsoft.com/kb/940248 в самом конце есть строчка:

    After you follow these steps, only the query part of the URL can contain extended characters. The query part follows the question mark (?) in the URL. The part that comes before the question mark in the URL cannot contain extended characters even after you use this resolution.

    Т.е. все это будет работать только если кирилические символы стоят после (?), у меня название папки(проекта) ведь идёт как раз до (?)

    В моем случае путь выглядит так:

    https://portal.server.ru/pwa/Структурный%20фасад%20Бибирево/_layouts/Upload.aspx?List=%7b9311D102-5C60-437A-AE2F-890678DE46F0%7d&RootFolder=%2fpwa%2f%u0421%u0442%u0440%u0443%u043a%u0442%u0443%u0440%u043d%u044b%u0439+%u0444%u0430%u0441%u0430%u0434+%u0411%u0438%u0431%u0438%u0440%u0435%u0432%u043e%2fProject+Documents&Source=https%3a%2f%2fportal.server.ru%2fpwa%2f%u0421%u0442%u0440%u0443%u043a%u0442%u0443%u0440%u043d%u044b%u0439+%u0444%u0430%u0441%u0430%u0434+%u0411%u0438%u0431%u0438%u0440%u0435%u0432%u043e%2fProject+Documents%2fForms%2fAllItems.aspx

    Т.е. получается здесь обойти проблему с кирилицей не получится?

    Коллеги, 
    у меня такая же проблема , скрипт был применен, но проблема остается
    как видно в форуме ответа так и не получено
    может все-таки кто-нибудь смог ее решить?
    причем внутри сети все работает нормально, а вот извне ISA это зарубает
    19 января 2010 г. 13:01