J'ai trouvé beaucoup de questions sur (401) Erreur non autorisée, mais aucun d'entre eux ne m'a expliqué comment diagnostiquer le problème."Le serveur distant a renvoyé une erreur: (401) Erreur" non autorisée "lors du téléchargement d'un fichier
J'ai créé une nouvelle application MVC ASP.net pour apprendre à télécharger un fichier dans un dossier sharepoint. A partir de ce moment semble, je ne peux pas être en mesure de copier un fichier à partir C: \ testfolder \ file.txt à C: \ testfolder \ Uploadedfiles
Voici la méthode que je faisais où j'envoie le chemin du fichier source et le dossier cible:
//Flag to indicate whether file was uploaded successfuly or not
bool isUploaded = true;
try
{
// Create a PUT Web request to upload the file.
WebRequest request = WebRequest.Create(targetDocumentLibraryPath);
//Set credentials of the current security context
request.PreAuthenticate = true;
request.UseDefaultCredentials = true;
ICredentials credentials = new NetworkCredential("Username", "password", "Domain"); //I used my username and password here
request.Credentials = credentials;
//request.Credentials = CredentialCache.DefaultCredentials;
request.Method = "PUT";
// Create buffer to transfer file
byte[] fileBuffer = new byte[1024];
// Write the contents of the local file to the request stream.
using (Stream stream = request.GetRequestStream())
{
//Load the content from local file to stream
using (FileStream fsWorkbook = File.Open(sourceFilePath, FileMode.Open, FileAccess.Read))
{
//Get the start point
int startBuffer = fsWorkbook.Read(fileBuffer, 0, fileBuffer.Length);
for (int i = startBuffer; i > 0; i = fsWorkbook.Read(fileBuffer, 0, fileBuffer.Length))
{
stream.Write(fileBuffer, 0, i);
}
}
}
// Perform the PUT request
WebResponse response = request.GetResponse();
//Close response
response.Close();
}
catch (Exception ex)
{
//Set the flag to indiacte failure in uploading
isUploaded = false; //The remote server returned an error: (401) Unauthorized.
}
//Return the final upload status
return isUploaded;
}
j'ai essayé les éléments suivants:
- Modification de l'autorisation des dossiers pour pouvoir écrire/lire les pour tous les utilisateurs.
- Utilisez d'autres emplacements de dossier (SharePoint, lecteur local, lecteur réseau) pour télécharger le fichier.
Une idée sur comment faire pour que ce problème fonctionne? Toute perspective sur la façon de déboguer le problème est également appréciée.
Mise à jour: Il est probablement que mon compte est défini en tant que compte du pool d'applications dans IIS. Je ne suis toujours pas sûr de la nature du problème.
Cette erreur signifie que vous n'êtes même pas autorisé à demander l'URL qui tente d'exécuter le fichier en mouvement ; cela n'a rien à voir avec le code de déplacement du fichier lui-même - ce code ne fonctionne même pas. –
@AndrewBarber, je l'ai essayé avec des fichiers locaux pour copier sur mon disque C local sans succès. – Ammar
Vous pouvez probablement essayer 'System.Net.CredentialCache.DefaultNetworkCredentials' – Romoku