Ошибка C# SharePoint Online : Удаленный сервер вернул ошибку: (403) ЗАПРЕЩЕНО

#c# #.net #sharepoint #sharepoint-online

Вопрос:

Я хотел бы подключить SharePoint Online к текущему пользователю в .NET с помощью единого входа. Я не хочу указывать имя пользователя и пароль в своем коде. К сожалению, у меня есть следующее сообщение об ошибке в ExecuteQuery() :

 The remote server returned an error: (403) FORBIDDEN
 

Мой код :

 string siteCollectionUrl = "https://xxx.sharepoint.com/teams/yyyy";
System.Net.ICredentials credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
SharePoint.ClientContext context = new SharePoint.ClientContext(siteCollectionUrl);
context.Credentials = credentials;
SharePoint.Web web = context.Web;
context.Load(web);
context.ExecuteQuery();
string tt = web.Title;
 

У тебя есть идея ?

Заранее спасибо

Ответ №1:

Вы должны использовать класс SharePointOnlineCredentials для аутентификации.

Подобный этому:

         String name = "user@xxx.onmicrosoft.com";
        String password = "xxxx";
        SecureString securePassword = new SecureString();
        foreach (char c in password.ToCharArray())
        {
            securePassword.AppendChar(c);
        }
        var credentials = new SharePointOnlineCredentials(name, securePassword);
        string siteCollectionUrl = "https://xxx.sharepoint.com/teams/yyyy";

        ClientContext ctx = new ClientContext(siteCollectionUrl );
        ctx.Credentials = credentials;
 

Комментарии:

1. Спасибо за ваш ответ. Но мне нужно подключиться к SharePoint Online с пользователем, который запускает программу, путем входа в систему. Я не хочу указывать имя пользователя и пароль в своем коде. Я просто изменяю свой вопрос, чтобы быть более ясным.