Ошибки SharePoint AJAX Web Part 401.2 / 3 - PullRequest
0 голосов
/ 04 января 2010

Недавно я начал писать веб-часть AJAX для использования в SharePoint, и у меня странная ошибка. Кажется, что EnsurePanelFix () заставляет веб-часть выдавать ошибку 401; в журнале одновременно появляются ошибки 401.2 и 401.3. Я внес некоторые изменения в EnsurePanelFix () после небольшого исследования здесь и на некоторых других сайтах, и в настоящее время он выглядит следующим образом:

void EnsurePanelFix
{
            // Change AJAX doPostBack behavior to fix the update panel.
            if (this.Page.Form != null)
            {
                String fixupScript = @"
                                     if (typeof(_spBodyOnLoadFunctionNames) !== 'undefined'){
                                     _spBodyOnLoadFunctionNames.push(""_initFormActionAjax"");
                                     function _initFormActionAjax() {
                                     if (_spEscapedFormAction == document.forms[0].action){
                                     document.forms[0]._initialAction =
                                     document.forms[0].action;
                                     }
                                     }

                                     RestoreToOriginalFormAction = function() {
                                     if (_spOriginalFormAction != null) {
                                     if (_spEscapedFormAction==document.forms[0].action){
                                     document.forms[0].action=_spOriginalFormAction;
                                     }
                                     _spOriginalFormAction=null;
                                     _spEscapedFormAction=null;

                                     document.forms[0]._initialAction = document.forms[0].action;
                                     }
                                     };
                                     }";

                string scriptKey = "UpdatePanelFixup";
                if (!Page.ClientScript.IsClientScriptBlockRegistered(scriptKey))
                    ScriptManager.RegisterStartupScript(this, typeof(SpecDatabaseViewer), scriptKey, fixupScript, true);

                ScriptManager.RegisterStartupScript(this,
                  typeof(SpecDatabaseViewer), "UpdatePanelFixup",
                  fixupScript, true);
            }

Наблюдая за журналом безопасности, я вижу, что сбои регистрируются так:

Event Type: Failure Audit
Event Source:   Security
Event Category: Object Access 
Event ID:            560
Date:       1/6/2010
Time:       11:46:34 AM
User:       NT AUTHORITY\NETWORK SERVICE
Computer:   SHAREPOINT
Description:
Object Open:
    Object Server:  SC Manager
    Object Type:    SERVICE OBJECT
    Object Name:    WinHttpAutoProxySvc
    Handle ID:  -
    Operation ID:   {0,69477107}
    Process ID: 404
    Image File Name:    C:\WINDOWS\system32\services.exe
    Primary User Name:  SHAREPOINT$
    Primary Domain: SPDOMAIN
    Primary Logon ID:   (0x0,0x3E7)
    Client User Name:   NETWORK SERVICE
    Client Domain:  NT AUTHORITY
    Client Logon ID:    (0x0,0x3E4)
    Accesses:   Query status of service 
            Start the service 
            Query information from service 

    Privileges: -
    Restricted Sid Count:   0
    Access Mask:    0x94

Существует несколько проверок сбоев, единственными отличающимися данными между которыми является идентификатор операции.

Может кто-нибудь увидеть причину, по которой у меня возникли бы проблемы с аутентификацией или разрешением файлов, учитывая, что без этого куска кода все работает нормально? Спасибо.

РЕДАКТИРОВАТЬ: Я почти уверен, что это как-то связано с ACL, но я не совсем уверен, где искать ресурсы, которые могут вызывать проблему.

1 Ответ

0 голосов
/ 04 января 2010

Можете ли вы уловить, какой именно URL генерирует ошибки 401.x? Должен быть видимым, если вы перехватываете звонки с помощью Fiddler.

Также это описание очень похоже на ваш случай: http://forums.asp.net/t/1187045.aspx

...