Sharepoint с МИД не разрешает доступ - PullRequest
1 голос
/ 30 июня 2019

Мы используем многофакторную аутентификацию на нашей Sharepoint. Мы пытаемся загрузить некоторые документы из sharepoint, чтобы манипулировать ими в нашем приложении. Я пытался получить доступ к sharepoint, используя как «традиционный» метод, так и пытаясь пройти через нашу Azure AD. Оба метода не позволяют нам получить доступ к sharepoint - нам отказано в разрешении

Любая помощь будет принята с благодарностью

Это то, что я уже пробовал - через AD

string clientId = "xxx";
string clientSecret = "yyy";
string tenant = "zzz";

AuthenticationResult result = null;
var data = AzureAdOptions.Settings.Authority;
AuthenticationContext authContext = new 
AuthenticationContext(AzureAdOptions.Settings.Authority);

ClientCredential credential = new 
ClientCredential(AzureAdOptions.Settings.ClientId, 
AzureAdOptions.Settings.ClientSecret);

result = await 
 authContext.AcquireTokenAsync(AzureAdOptions.Settings.PreceptWebApiResourceId, credential);

HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, url);

request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken);
HttpResponseMessage response = await client.SendAsync(request);

а затем более "традиционный путь"

WebRequest request = WebRequest.Create("https://my.sharepoint.com:/sites/files/");

string userName = "mylogon";
string password = "@!";

var securePassword = new SecureString();
foreach (char c in password)
{
    securePassword.AppendChar(c);
}

request.Credentials = new NetworkCredential(userName, securePassword);

String encoded = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(userName + ":" + password));

request.Headers.Add("Authorization", "Basic " + encoded);

WebResponse response = request.GetResponse();

1 Ответ

0 голосов
/ 01 июля 2019

Замените строку кода ниже

request.Credentials = new NetworkCredential(userName, securePassword);

на

request.Credentials = new SharePointOnlineCredentials(userName, securePassword);

или используя SharePointPnPCoreOnline .

var authManager = new AuthenticationManager();
var ctx = authManager.GetWebLoginClientContext("https://contoso.sharepoint.com/");

См.: CSOM.MFA.cs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...