1

Je crée par programme une demande HTTP du serveur de rapports à partir d'une page Web asp net présente sur un autre ordinateur distant pour télécharger le rapport (URL Access - SSRS) Quand je tape directement l'URL, le navigateur me demande les informations d'identification, et quand je tape dans les informations d'identification le rapport est téléchargé automatiquement dans le navigateur, mais quand je fais la demande par programme, j'obtiens les erreurs mentionnées ci-dessous.C# -HttpWebRequest renvoie 400 Demande incorrecte lors de la connexion au serveur de rapports par programmation

code C#:

string username="abc", password="123"; 
string url = @"http://ServerName/ReportingPath&Parameter1=123&rs:Format=PDF"; 
String encoded = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(username + ":" + password));     
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);     
request.Headers.Add("Authorization", "Basic " + encoded); 
request.PreAuthenticate = true; 
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 11.0; Windows NT 6.0; WOW64; " + 
       "Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; " + ".NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30618; " + 
       "InfoPath.2)";     
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 

Je reçois un HTTP 400 mauvaise demande quand je fournir le nom d'utilisateur comme "domaine/abc" ou "abc @ domaine", et il vient aussi lorsque je place cette déclaration

request.Credentials = new NetworkCredential(username,password,domain); 

au lieu de ligne->

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

Si je fournir le nom d'utilisateur simplement, décapage t Le domaine, comme nom d'utilisateur = "abc", je reçois 401-erreur non autorisée.

Je n'obtiens pas l'une des erreurs 400 ou 401 lorsque je tape l'URL dans le navigateur Internet. Je précise le nom d'utilisateur comme « domaine/abc » et mot de passe « 123 », quand il demande des informations d'identification

Mon fichier webConfig du serveur de rapports est comme ça ..

<Authentication> 
<AuthenticationTypes> 
     <RSWindowsBasic/> 
</AuthenticationTypes> 
<RSWindowsExtendedProtectionLevel>Off</RSWindowsExtendedProtectionLevel> 
<RSWindowsExtendedProtectionScenario>Proxy</RSWindowsExtendedProtectionScenario> 
<EnableAuthPersistence>true</EnableAuthPersistence> 
</Authentication> 

Toute aide à ce sujet sera apprécié .

Répondre

0

Pouvez-vous essayer de définir l'URL comme http://abc:[email protected]/ReportingPath&Parameter1=123&rs:Format=PDF et sans authentification. Il fait partie de basic authentication en HTTP.

+0

Cela ne fonctionne toujours pas. Obtenir la même erreur "401 non autorisé". Existe-t-il un moyen de transmettre un nom de domaine, un nom d'utilisateur et un mot de passe au serveur? –

+0

[ici] (http://drayblog.gotdns.com/index.php/2012/09/25/sql-2008-ssrs-web-service-access-from-net/) vous avez un exemple de travail. – Ygalbel

+0

Son fonctionne bien .. Un grand merci pour l'échantillon .. Très apprécié –