2013-08-27 59 views
0

我有2個SharePoint站點耗盡一個SharePoint安裝。一個網站啓用了聲明,另一個啓用了經典認證。這兩個站點也都使用Kerberos。基於Sharepoint聲明與經典身份驗證

我正在使用ManifoldCF連接到這些網站以提取所有內容以及權限。 ManifoldCF連接器使用經典認證連接到站點,並按預期工作。但是,嘗試抓取基於聲明的網站會生成401未經授權的錯誤。

有一個與ManifoldCF一起提供的Web服務程序包,可以訪問它,名爲MCPermissions.asmx。此文件包含下面的代碼塊,設置用戶的憑據:

try 
{ 
    // Only handle requests for "item". Send all other requests to the SharePoint web service. 
    if (objectType.Equals(itemType)) 
    { 
     retVal = GetItemPermissions(objectName); 
    } 
    else 
    { 
     ServicePointManager.ServerCertificateValidationCallback += 
     new RemoteCertificateValidationCallback(ValidateCertificate); 
     using (SPPermissionsService.Permissions service = new SPPermissionsService.Permissions()) 
     { 
      service.Url = SPContext.Current.Web.Url + "/_vti_bin/Permissions.asmx"; 
      service.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials; 
      retVal = service.GetPermissionCollection(objectName, objectType); 
     } 
    } 
} 
catch (SoapException soapEx) 
{ 
    throw soapEx; 
} 
catch (Exception ex) 
{ 
    SPDiagnosticsService.Local.WriteTrace(0, new SPDiagnosticsCategory("MCPermissions.asmx", TraceSeverity.Unexpected, EventSeverity.Error), TraceSeverity.Unexpected, "Error: "+ex.Message+"; SPContext.Current.Web.Url='"+SPContext.Current.Web.Url+"'", ex.StackTrace); 
    throw RaiseException(ex.Message, "1000", ex.Source); 
} 

此代碼是通過ManifoldCF正確訪問,但似乎它在插件作出/_vti_bin/Permissions.asmx的要求,即是造成401問題。

我曾嘗試使用NetworkCredential (「username」,「password」,「domain」)設置上面代碼中的預定義憑據,但沒有運氣。

實施例:

string webUrl = SPContext.Current.Web.Url; 
NetworkCredential myCredentials = new NetworkCredential("DOMAIN\\user", "mypassword", "DOMAIN"); 
CredentialCache credCache = new CredentialCache(); 
credCache.Add(new Uri(webUrl), "Negotiate", myCredentials); 
service.Url = webUrl + "/_vti_bin/Permissions.asmx"; 
service.Credentials = credCache; 

利用基於認證權利要求中,用戶名,我進入ManfoldCF或在瀏覽器中的認證被從常規\格式權利要求用戶名格式改變(例如I:0#。瓦特|| /)。

有沒有人知道爲什麼索賠會導致經典認證沒有的401問題?

回答

0

原來這是ManifoldCF 1.2版本發佈的錯誤。它已被更新的版本修復。

相關問題