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-Element mit den der Anforderung zugeordneten Anmeldeinformationen für die Authentifizierung. 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

Die Credentials -Eigenschaft enthält Authentifizierungsinformationen, um den Ersteller der Anforderung zu identifizieren. Die Credentials -Eigenschaft kann entweder eine NetworkCredentialsein, in diesem Fall werden die im NetworkCredential -Objekt enthaltenen Benutzer-, Kennwort- und Domäneninformationen zum Authentifizieren der Anforderung verwendet, oder es kann sich um einen CredentialCache, in diesem Fall der Uniform Resource Identifier (URI) der Anforderung verwenden, um den Benutzer, das Kennwort und die Domäneninformationen zu bestimmen, die zur Authentifizierung der Anforderung verwendet werden sollen.

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 der mittleren Ebene verwendet wird, z. B. in einer ASP.NET-Anwendung, gehören die Anmeldeinformationen in der DefaultCredentials Eigenschaft zum Konto, das die ASP-Seite ausführt (die serverseitigen Anmeldeinformationen). In der Regel legen Sie diese Eigenschaft auf die Anmeldeinformationen des Clients fest, in dessen Auftrag die Anforderung gestellt wird.

Hinweis

Das NTLM-Authentifizierungsschema kann nicht verwendet werden, um die Identität eines anderen Benutzers zu annehmen. Kerberos muss speziell für die Unterstützung des Identitätswechsels konfiguriert werden.

Um HttpWebRequest auf eine oder mehrere Authentifizierungsmethoden einzuschränken, verwenden Sie die CredentialCache -Klasse, und binden Sie Ihre Anmeldeinformationen an ein oder mehrere Authentifizierungsschemas.

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

Speichern Sie aus Sicherheitsgründen beim automatischen Folgen von Umleitungen die Anmeldeinformationen, die Sie in der Umleitung enthalten möchten, und CredentialCache 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 unter diesen Bedingungen automatisch auf null festgelegt wird, wird verhindert, dass Anmeldeinformationen an ein unbeabsichtigtes Ziel gesendet werden.

Gilt für: