Ich versuche, eine Verbindung zur SharePoint Online-Website mit C# und dem clientseitigen Objektmodell (CSOM) herzustellen. Ich bin ein externer Benutzer und kann mit meinem Browser auf die URL zugreifen, aber wenn ich das programmatisch versuche, kann ich nicht sagen, dass der Anmelde-Name oder das Passwort nicht mit dem Microsoft-Account-System übereinstimmt. Im Folgenden ist das Codebeispiel, das ich ausprobiert habe. Ich habe den richtigen Benutzernamen/Passwort. Jede Hilfe wird geschätzt.Herstellen einer Verbindung zu SharePoint Online mithilfe eines externen Benutzers mit C# und clientseitigem Objektmodell (CSOM)
Um Klarheit zu schaffen - sieht mein externer Benutzer wie myemail#EXT#@companyname.onmicrosoft.com (das @ Zeichen in myemail wird durch einen Unterstrich ersetzt).
string siteUrl = "https://companyname.sharepoint.com/sites/ERCT";
using (ClientContext clientContext = new ClientContext(siteUrl))
{
var psd = "Password".ToCharArray();
SecureString secureString = new SecureString();
foreach (char c in psd) secureString.AppendChar(c);
//psd.ToList().ForEach(secureString.AppendChar);
clientContext.Credentials = new SharePointOnlineCredentials("[email protected]", secureString);
SP.List oList = clientContext.Web.Lists.GetByTitle("ListName");
CamlQuery camlQuery = new CamlQuery();
camlQuery.ViewXml = "<View><RowLimit>100</RowLimit></View>";
ListItemCollection collListItem = oList.GetItems(camlQuery);
clientContext.Load(collListItem,
items => items.Include(
item => item.Id,
item => item.DisplayName,
item => item.HasUniqueRoleAssignments));
clientContext.ExecuteQuery();
foreach (ListItem oListItem in collListItem)
{
Console.WriteLine("ID: {0} \nDisplay name: {1} \nUnique role assignments: {2}",
oListItem.Id, oListItem.DisplayName, oListItem.HasUniqueRoleAssignments);
}
}
Verwenden Sie Proxy, um eine Verbindung zum Internet herzustellen? Das könnte der Grund sein, – Matt
@Matt - es könnte sein. Gibt es einen Weg, den ich bestätige? Wie gesagt, ich kann mich über ein Browserfenster verbinden. –