HttpWebRequest.Credentials プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
要求の認証情報を取得または設定します。
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
プロパティ値
要求に関連付けられている認証資格情報を含む ICredentials。 既定値は null
です。
例
次のコード例では、要求の資格情報を設定します。
#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.
'...
'
'
注釈
注意
WebRequest
、HttpWebRequest
、ServicePoint
、WebClient
は廃止されており、新しい開発には使用しないでください。 代わりに HttpClient を使用してください。
Credentials プロパティには、要求の作成者を識別するための認証情報が含まれています。 Credentials プロパティは、NetworkCredential(NetworkCredential オブジェクトに含まれるユーザー、パスワード、およびドメイン情報を使用して要求を認証する場合)、または CredentialCacheにすることができます。この場合、要求の URI (Uniform Resource Identifier) を使用して、要求の認証に使用するユーザー、パスワード、およびドメイン情報を決定できます。
ほとんどのクライアント シナリオでは、現在ログオンしているユーザーの資格情報を含む DefaultCredentials プロパティを使用する必要があります。 これを行うには、このプロパティを設定するのではなく、UseDefaultCredentials プロパティを true
に設定します。
HttpWebRequest クラスが ASP.NET アプリケーションなどの中間層アプリケーションで使用されている場合、DefaultCredentials プロパティの資格情報は、ASP ページを実行しているアカウント (サーバー側の資格情報) に属します。 通常、このプロパティは、要求が行われるクライアントの資格情報に設定します。
手記
NTLM 認証スキームを使用して別のユーザーを偽装することはできません。 偽装をサポートするには、Kerberos を特別に構成する必要があります。
HttpWebRequest を 1 つ以上の認証方法に制限するには、CredentialCache クラスを使用し、資格情報を 1 つ以上の認証スキームにバインドします
サポートされている認証スキームには、ダイジェスト、ネゴシエート、Kerberos、NTLM、Basic が含まれます。
セキュリティ上の理由から、リダイレクトを自動的に実行する場合は、リダイレクトに含める資格情報を CredentialCache に格納し、このプロパティに割り当てます。 このプロパティは、CredentialCache以外のものが含まれている場合、リダイレクト時に自動的に null
に設定されます。 これらの条件下でこのプロパティ値を自動的に null
に設定すると、意図しない宛先に資格情報が送信されなくなります。
適用対象
.NET