2015-10-09 44 views
-1

也許有人可以幫我解決以下問題。我在SharePoint中有身份驗證問題。對於登錄,我們有兩種不同的身份驗證:1.對客戶進行身份驗證2.對員工進行Windows身份驗證。 形式爲客戶認證適用於以下代碼:使用sharepoint的windwows身份驗證問題

using (ClientContext clientContext = new ClientContext("https://project.com/blabla")) 
      { 

       //forms authentication 1 
       clientContext.AuthenticationMode = ClientAuthenticationMode.FormsAuthentication; 
       clientContext.FormsAuthenticationLoginInfo = new FormsAuthenticationLoginInfo(txtUsername.Text, txtPassword.Text); 
       Web w = clientContext.Web; 
    List announcementsList = clientContext.Web.Lists.GetByTitle("Cars"); 

       CamlQuery query = CamlQuery.CreateAllItemsQuery(100); 
       ListItemCollection items = announcementsList.GetItems(query); 




       clientContext.Load(items); 
       clientContext.ExecuteQuery(); 

} 

我們需要對組織的僱員Windows身份驗證。我發現了一個錯誤與下面的代碼:

using (ClientContext clientContext = new ClientContext("https://project.com/blabla")) 
{ 
     //windows authentcation 
       clientContext.Credentials = new NetworkCredential   (txtUsername.Text, txtPassowrd.Text, "DOMAIN"); 
    List announcementsList = clientContext.Web.Lists.GetByTitle("Cars"); 

       CamlQuery query = CamlQuery.CreateAllItemsQuery(100); 
       ListItemCollection items = announcementsList.GetItems(query); 

       clientContext.Load(items); 
       clientContext.ExecuteQuery(); 

} 

錯誤消息使用Windows身份驗證時:遠程服務器返回錯誤:(401)未經授權

有沒有人對這個問題的解決方案?謝謝!

+0

如果你正在使用Windows身份驗證,然後你怎麼自己的密碼?使用窗口的身份驗證的重點是*你永遠不需要觸摸他們的密碼*。 – Servy

回答

-1

這對我來說看起來很好,你的域輸入正確嗎?

clientContext.Credentials = new NetworkCredential(txtUsername.Text, txtPassowrd.Text, "DOMAIN"); 

測試使用此語法:

clientContext.Credentials = new NetworkCredential(@"DOMAIN\"+txtUsername.Text, txtPassowrd.Text); 
+0

這不是一個錯誤的解釋,不應該得到-1票! – Damien

0

問題可能來自默認模擬設置,嘗試使用系統帳戶。

請檢查此設置爲false在您的應用程序的設置:

<appSettings> 
    <add key="aspnet:AllowAnonymousImpersonation" value="false" /> 
</appSettings>