KoenZomers / OneDriveAPI

API in .NET Framework 4.8.0, .NET Core 3.1 and .NET 6.0 to communicate with OneDrive Personal and OneDrive for Business
Eclipse Public License 1.0
110 stars 35 forks source link

[BUG] OneDriveGraphApi.ShareItem with Organization scope does not work as expected #41

Open DemiDOS opened 1 year ago

DemiDOS commented 1 year ago

Description I get the message Access Denied for my corporate account in browser when I use the link generated by the API method OneDriveGraphApi.ShareItem with Organization scope.

To Reproduce Steps to reproduce the behavior:

  1. Upload a file and generate link to file using API: var oneDriveGraphApi = new OneDriveGraphApi(_oneDriveApiInfo.ClientId); await oneDriveGraphApi.AuthenticateUsingRefreshToken(_oneDriveApiInfo.RefreshToken); var oneDriveFile = await oneDriveGraphApi.UploadFileToAppFolder(filePath); var oneDrivePermission = await oneDriveGraphApi.ShareItem(oneDriveFile, OneDriveLinkType.View, OneDriveSharingScope.Organization);
  2. Check the file on OneDrive. The file was uploaded and shared via link, but the link does not work.
  3. If anonymous access is disabled in organization, there is an issue with access to file via link.

Expected behavior Uploaded file should be accessible via link for everyone inside organization.

Versions:

DemiDOS commented 1 year ago

Quick look into problem: request (https://graph.microsoft.com/v1.0/me/drive/items/***/createLink) contains empty body. I guess, serialization of OneDriveRequestShare instance always create empty string and does not respect provided values.