HttpWebRequest.Credentials Eigenschaft

Definition

Ruft Authentifizierungsinformationen für die Anforderung ab oder legt diese fest.

public:
 virtual property System::Net::ICredentials ^ Credentials { System::Net::ICredentials ^ get(); void set(System::Net::ICredentials ^ value); };
public override System.Net.ICredentials Credentials { get; set; }
public override System.Net.ICredentials? Credentials { get; set; }
member this.Credentials : System.Net.ICredentials with get, set
Public Overrides Property Credentials As ICredentials

Eigenschaftswert

Ein ICredentials, das die Authentifizierungsanmeldeinformationen enthält, die der Anforderung zugeordnet sind. Der Standardwert ist null.

Beispiele

Im folgenden Codebeispiel werden die Anmeldeinformationen für eine Anforderung festgelegt.

#using <System.dll>

using namespace System;
using namespace System::Net;
using namespace System::Text;
using namespace System::IO;

// Specify the URL to receive the request.
int main()
{
   array<String^>^args = Environment::GetCommandLineArgs();
   HttpWebRequest^ request = dynamic_cast<HttpWebRequest^>(WebRequest::Create(args[1]));

   // Set some reasonable limits on resources used by this request
   request->MaximumAutomaticRedirections = 4;
   request->MaximumResponseHeadersLength = 4;

   // Set credentials to use for this request.
   request->Credentials = CredentialCache::DefaultCredentials;
   HttpWebResponse^ response = dynamic_cast<HttpWebResponse^>(request->GetResponse());
   Console::WriteLine("Content length is {0}", response->ContentLength);
   Console::WriteLine("Content type is {0}", response->ContentType);

   // Get the stream associated with the response.
   Stream^ receiveStream = response->GetResponseStream();

   // Pipes the stream to a higher level stream reader with the required encoding format.
   StreamReader^ readStream = gcnew StreamReader(receiveStream, Encoding::UTF8);
   Console::WriteLine("Response stream received.");
   Console::WriteLine(readStream->ReadToEnd());
   response->Close();
   readStream->Close();
}

/*
The output from this example will vary depending on the value passed into Main
but will be similar to the following:

Content length is 1542
Content type is text/html; charset=utf-8
Response stream received.
<html>
...
</html>

*/
using System;
using System.Net;
using System.Text;
using System.IO;

    public class Test
    {
        // Specify the URL to receive the request.
        public static void Main (string[] args)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(args[0]);

            // Set some reasonable limits on resources used by this request
            request.MaximumAutomaticRedirections = 4;
            request.MaximumResponseHeadersLength = 4;
            // Set credentials to use for this request.
            request.Credentials = CredentialCache.DefaultCredentials;
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            Console.WriteLine("Content length is {0}", response.ContentLength);
            Console.WriteLine("Content type is {0}", response.ContentType);

            // Get the stream associated with the response.
            Stream receiveStream = response.GetResponseStream();

            // Pipes the stream to a higher level stream reader with the required encoding format.
            StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);

            Console.WriteLine("Response stream received.");
            Console.WriteLine(readStream.ReadToEnd());
            response.Close();
            readStream.Close();
        }
    }

/*
The output from this example will vary depending on the value passed into Main
but will be similar to the following:

Content length is 1542
Content type is text/html; charset=utf-8
Response stream received.
<html>
...
</html>

*/
Imports System.Net
Imports System.Text
Imports System.IO


    Public Class Test

        ' Specify the URL to receive the request.
        Public Shared Sub Main(ByVal args() As String)
        Dim request As HttpWebRequest = CType(WebRequest.Create(args(0)), HttpWebRequest)


        ' Set some reasonable limits on resources used by this request
        request.MaximumAutomaticRedirections = 4
        request.MaximumResponseHeadersLength = 4

        ' Set credentials to use for this request.
        request.Credentials = CredentialCache.DefaultCredentials

        Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)

        Console.WriteLine("Content length is {0}", response.ContentLength)
        Console.WriteLine("Content type is {0}", response.ContentType)

        ' Get the stream associated with the response.
        Dim receiveStream As Stream = response.GetResponseStream()

        ' Pipes the stream to a higher level stream reader with the required encoding format. 
        Dim readStream As New StreamReader(receiveStream, Encoding.UTF8)

        Console.WriteLine("Response stream received.")
        Console.WriteLine(readStream.ReadToEnd())
        response.Close()
        readStream.Close()
    End Sub
End Class
'
'The output from this example will vary depending on the value passed into Main 
'but will be similar to the following:
'
'Content length is 1542
'Content type is text/html; charset=utf-8
'Response stream received.
'...
'
'

Hinweise

Vorsicht

WebRequest, HttpWebRequest, ServicePointund WebClient sind veraltet, und Sie sollten sie nicht für die neue Entwicklung verwenden. Verwenden Sie stattdessen HttpClient.

Die Credentials-Eigenschaft enthält Authentifizierungsinformationen, um den Hersteller der Anforderung zu identifizieren. Die Credentials-Eigenschaft kann entweder ein NetworkCredentialsein. In diesem Fall werden die im NetworkCredential Objekt enthaltenen Benutzer-, Kennwort- und Domäneninformationen verwendet, um die Anforderung zu authentifizieren, oder es kann sich um eine CredentialCachehandeln. In diesem Fall wird der URI (Uniform Resource Identifier) der Anforderung verwendet, um die Benutzer-, Kennwort- und Domäneninformationen zu bestimmen, die zur Authentifizierung der Anforderung verwendet werden.

In den meisten Clientszenarien sollten Sie die DefaultCredentials-Eigenschaft verwenden, die die Anmeldeinformationen des aktuell angemeldeten Benutzers enthält. Legen Sie dazu die UseDefaultCredentials-Eigenschaft auf true fest, anstatt diese Eigenschaft festzulegen.

Wenn die HttpWebRequest Klasse in einer Anwendung auf mittlerer Ebene verwendet wird, z. B. eine ASP.NET Anwendung, gehören die Anmeldeinformationen in der DefaultCredentials-Eigenschaft zum Konto, das die ASP-Seite (die serverseitigen Anmeldeinformationen) ausführt. In der Regel würden Sie diese Eigenschaft auf die Anmeldeinformationen des Clients festlegen, in dessen Auftrag die Anforderung gestellt wird.

Anmerkung

Das NTLM-Authentifizierungsschema kann nicht zum Identitätswechsel eines anderen Benutzers verwendet werden. Kerberos muss speziell für die Unterstützung des Identitätswechsels konfiguriert sein.

Verwenden Sie zum Einschränken von HttpWebRequest auf eine oder mehrere Authentifizierungsmethoden die CredentialCache Klasse, und binden Sie Ihre Anmeldeinformationen an ein oder mehrere Authentifizierungsschemas.

Unterstützte Authentifizierungsschemas umfassen Digest, Negotiate, Kerberos, NTLM und Basic.

Aus Sicherheitsgründen speichern Sie beim automatischen Folgen von Umleitungen die Anmeldeinformationen, die Sie in die Umleitung in einem CredentialCache einbeziehen möchten, und weisen Sie sie dieser Eigenschaft zu. Diese Eigenschaft wird bei der Umleitung automatisch auf null festgelegt, wenn sie etwas außer einem CredentialCacheenthält. Wenn dieser Eigenschaftswert automatisch auf null unter diesen Bedingungen festgelegt wird, wird verhindert, dass Anmeldeinformationen an ein unbeabsichtigtes Ziel gesendet werden.

Gilt für: