Authorization Конструкторы
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает новый экземпляр класса Authorization.
Перегрузки
| Имя | Описание |
|---|---|
| Authorization(String) |
Создает новый экземпляр Authorization класса с указанным сообщением авторизации. |
| Authorization(String, Boolean) |
Создает новый экземпляр Authorization класса с указанным сообщением авторизации и состоянием завершения. |
| Authorization(String, Boolean, String) |
Создает новый экземпляр Authorization класса с указанным сообщением авторизации, состоянием завершения и идентификатором группы подключений. |
Authorization(String)
Создает новый экземпляр Authorization класса с указанным сообщением авторизации.
public:
Authorization(System::String ^ token);
public Authorization(string token);
new System.Net.Authorization : string -> System.Net.Authorization
Public Sub New (token As String)
Параметры
- token
- String
Зашифрованное сообщение авторизации, ожидаемое сервером.
Примеры
В следующем примере кода показано, как создать Authorization объект.
// Authenticate is the core method for this custom authentication.
// When an Internet resource requests authentication, the WebRequest.GetResponse
// method calls the AuthenticationManager.Authenticate method. This method, in
// turn, calls the Authenticate method on each of the registered authentication
// modules, in the order in which they were registered. When the authentication is
// complete an Authorization object is returned to the WebRequest.
public Authorization Authenticate(String challenge, WebRequest request, ICredentials credentials)
{
Encoding ASCII = Encoding.ASCII;
// Get the username and password from the credentials
NetworkCredential myCreds = credentials.GetCredential(request.RequestUri, "Basic");
if (PreAuthenticate(request, credentials) == null)
Console.WriteLine("\n Pre-authentication is not allowed.");
else
Console.WriteLine("\n Pre-authentication is allowed.");
// Verify that the challenge satisfies the authorization requirements.
bool challengeOk = CheckChallenge(challenge, myCreds.Domain);
if (!challengeOk)
return null;
// Create the encrypted string according to the Basic authentication format as
// follows:
// a)Concatenate the username and password separated by colon;
// b)Apply ASCII encoding to obtain a stream of bytes;
// c)Apply Base64 encoding to this array of bytes to obtain the encoded
// authorization.
string basicEncrypt = myCreds.UserName + ":" + myCreds.Password;
string basicToken = "Basic " + Convert.ToBase64String(ASCII.GetBytes(basicEncrypt));
// Create an Authorization object using the encoded authorization above.
Authorization resourceAuthorization = new Authorization(basicToken);
// Get the Message property, which contains the authorization string that the
// client returns to the server when accessing protected resources.
Console.WriteLine("\n Authorization Message:{0}",resourceAuthorization.Message);
// Get the Complete property, which is set to true when the authentication process
// between the client and the server is finished.
Console.WriteLine("\n Authorization Complete:{0}",resourceAuthorization.Complete);
Console.WriteLine("\n Authorization ConnectionGroupId:{0}",resourceAuthorization.ConnectionGroupId);
return resourceAuthorization;
}
' Authenticate is the core method for this custom authentication.
' When an Internet resource requests authentication, the WebRequest.GetResponse
' method calls the AuthenticationManager.Authenticate method. This method, in
' turn, calls the Authenticate method on each of the registered authentication
' modules, in the order in which they were registered. When the authentication is
' complete an Authorization object is returned to the WebRequest.
Public Function Authenticate(ByVal challenge As String, ByVal request As WebRequest, ByVal credentials As ICredentials) As Authorization _
Implements IAuthenticationModule.Authenticate
Dim ASCII As Encoding = Encoding.ASCII
' Get the username and password from the credentials
Dim MyCreds As NetworkCredential = credentials.GetCredential(request.RequestUri, "Basic")
If PreAuthenticate(request, credentials) Is Nothing Then
Console.WriteLine(ControlChars.Lf + " Pre-authentication is not allowed.")
Else
Console.WriteLine(ControlChars.Lf + " Pre-authentication is allowed.")
End If
' Verify that the challenge satisfies the authorization requirements.
Dim challengeOk As Boolean = checkChallenge(challenge, MyCreds.Domain)
If Not challengeOk Then
Return Nothing
End If
' Create the encrypted string according to the Basic authentication format as
' follows:
' a)Concatenate the username and password separated by colon;
' b)Apply ASCII encoding to obtain a stream of bytes;
' c)Apply Base64 encoding to this array of bytes to obtain the encoded
' authorization.
Dim BasicEncrypt As String = MyCreds.UserName + ":" + MyCreds.Password
Dim BasicToken As String = "Basic " + Convert.ToBase64String(ASCII.GetBytes(BasicEncrypt))
' Create an Authorization object using the encoded authorization above.
Dim resourceAuthorization As New Authorization(BasicToken)
' Get the Message property, which contains the authorization string that the
' client returns to the server when accessing protected resources.
Console.WriteLine(ControlChars.Lf + " Authorization Message:{0}", resourceAuthorization.Message)
' Get the Complete property, which is set to true when the authentication process
' between the client and the server is finished.
Console.WriteLine(ControlChars.Lf + " Authorization Complete:{0}", resourceAuthorization.Complete)
Console.WriteLine(ControlChars.Lf + " Authorization ConnectionGroupId:{0}", resourceAuthorization.ConnectionGroupId)
Return resourceAuthorization
End Function 'Authenticate
End Class
Комментарии
Экземпляр Authorization создается с набором свойств token и свойством MessageComplete, равным true.
Применяется к
Authorization(String, Boolean)
Создает новый экземпляр Authorization класса с указанным сообщением авторизации и состоянием завершения.
public:
Authorization(System::String ^ token, bool finished);
public Authorization(string token, bool finished);
new System.Net.Authorization : string * bool -> System.Net.Authorization
Public Sub New (token As String, finished As Boolean)
Параметры
- token
- String
Зашифрованное сообщение авторизации, ожидаемое сервером.
- finished
- Boolean
Состояние завершения попытки авторизации.
Примеры
В следующем примере кода создается новый экземпляр Authorization класса с указанным сообщением авторизации и состоянием завершения.
public Authorization Authenticate( string challenge,WebRequest request,ICredentials credentials)
{
try
{
string message;
// Check if Challenge string was raised by a site which requires 'CloneBasic' authentication.
if ((challenge == null) || (!challenge.StartsWith("CloneBasic")))
return null;
NetworkCredential myCredentials;
if (credentials is CredentialCache)
{
myCredentials = credentials.GetCredential(request.RequestUri,"CloneBasic");
if (myCredentials == null)
return null;
}
else
{
myCredentials = (NetworkCredential)credentials;
}
// Message encryption scheme :
// a)Concatenate username and password seperated by space;
// b)Apply ASCII encoding to obtain a stream of bytes;
// c)Apply Base64 Encoding to this array of bytes to obtain our encoded authorization message.
message = myCredentials.UserName + " " + myCredentials.Password;
// Apply AsciiEncoding to 'message' string to obtain it as an array of bytes.
Encoding ascii = Encoding.ASCII;
byte[] byteArray = new byte[ascii.GetByteCount(message)];
byteArray = ascii.GetBytes(message);
// Performing Base64 transformation.
message = Convert.ToBase64String(byteArray);
Authorization myAuthorization = new Authorization("CloneBasic " + message,true);
string[] protectionRealm = new string[]{request.RequestUri.AbsolutePath};
myAuthorization.ProtectionRealm = protectionRealm;
return myAuthorization;
}
catch(Exception e)
{
Console.WriteLine("The following exception was raised in Authenticate method:{0}",e.Message);
return null;
}
}
Function Authenticate(ByVal challenge As String, ByVal request As WebRequest, ByVal credentials As ICredentials) As Authorization Implements IAuthenticationModule.Authenticate
Try
Dim message As String
' Check if Challenge string was raised by a site which requires 'CloneBasic' authentication.
If challenge Is Nothing Or Not challenge.StartsWith("CloneBasic") Then
Return Nothing
End If
Dim myCredentials As NetworkCredential
If TypeOf credentials Is CredentialCache Then
myCredentials = credentials.GetCredential(request.RequestUri, "CloneBasic")
If myCredentials Is Nothing Then
Return Nothing
End If
Else
myCredentials = CType(credentials, NetworkCredential)
End If
' Message encryption scheme :
' a)Concatenate username and password seperated by space
' b)Apply ASCII encoding to obtain a stream of bytes
' c)Apply Base64 Encoding to this array of bytes to obtain our encoded authorization message
message = myCredentials.UserName + " " + myCredentials.Password
' Apply AsciiEncoding to 'message' string to obtain it as an array of bytes.
Dim ascii As Encoding = Encoding.ASCII
Dim byteArray(ascii.GetByteCount(message)) As Byte
byteArray = ascii.GetBytes(message)
' Performing Base64 transformation.
message = Convert.ToBase64String(byteArray)
Dim myAuthorization As New Authorization("CloneBasic " + message, True)
Dim protectionRealm() As String = {request.RequestUri.AbsolutePath}
myAuthorization.ProtectionRealm = protectionRealm
Return myAuthorization
Catch e As Exception
Console.WriteLine("The following exception was raised in Authenticate method:{0}", e.Message)
Return Nothing
End Try
End Function 'Authenticate
Комментарии
Экземпляр Authorization создается с набором свойств token и свойством MessageComplete, равным finished.
Применяется к
Authorization(String, Boolean, String)
Создает новый экземпляр Authorization класса с указанным сообщением авторизации, состоянием завершения и идентификатором группы подключений.
public:
Authorization(System::String ^ token, bool finished, System::String ^ connectionGroupId);
public Authorization(string token, bool finished, string connectionGroupId);
new System.Net.Authorization : string * bool * string -> System.Net.Authorization
Public Sub New (token As String, finished As Boolean, connectionGroupId As String)
Параметры
- token
- String
Зашифрованное сообщение авторизации, ожидаемое сервером.
- finished
- Boolean
Состояние завершения попытки авторизации.
- connectionGroupId
- String
Уникальный идентификатор, который можно использовать для создания подключений частного клиента-сервера, привязанных только к этой схеме проверки подлинности.
Примеры
В следующем примере кода создается новый экземпляр Authorization класса с указанным сообщением авторизации, состоянием завершения и идентификатором группы подключений.
public Authorization Authenticate( string challenge,WebRequest request,ICredentials credentials)
{
try
{
string message;
// Check if Challenge string was raised by a site which requires CloneBasic authentication.
if ((challenge == null) || (!challenge.StartsWith("CloneBasic")))
return null;
NetworkCredential myCredentials;
if (credentials is CredentialCache)
{
myCredentials = credentials.GetCredential(request.RequestUri,"CloneBasic");
if (myCredentials == null)
return null;
}
else
{
myCredentials = (NetworkCredential)credentials;
}
// Message encryption scheme :
// a)Concatenate username and password seperated by space;
// b)Apply ASCII encoding to obtain a stream of bytes;
// c)Apply Base64 Encoding to this array of bytes to obtain our encoded authorization message.
message = myCredentials.UserName + " " + myCredentials.Password;
// Apply AsciiEncoding to our user name and password to obtain it as an array of bytes.
Encoding asciiEncoding = Encoding.ASCII;
byte[] byteArray = new byte[asciiEncoding.GetByteCount(message)];
byteArray = asciiEncoding.GetBytes(message);
// Perform Base64 transform.
message = Convert.ToBase64String(byteArray);
// The following overloaded contructor sets the 'Message' property of authorization to the base64 string;
// that we just formed and it also sets the 'Complete' property to true and the connection group id;
// to the domain of the NetworkCredential object.
Authorization myAuthorization = new Authorization("CloneBasic " + message,true,request.ConnectionGroupName);
return myAuthorization;
}
catch(Exception e)
{
Console.WriteLine("Exception Raised ...:"+e.Message);
return null;
}
}
Public Function Authenticate(challenge As String, request As WebRequest, credentials As ICredentials) As Authorization Implements IAuthenticationModule.Authenticate
Try
Dim message As String
' Check if Challenge string was raised by a site which requires CloneBasic authentication.
If challenge Is Nothing Or Not challenge.StartsWith("CloneBasic") Then
Return Nothing
End If
Dim myCredentials As NetworkCredential
If TypeOf credentials Is CredentialCache Then
myCredentials = credentials.GetCredential(request.RequestUri, "CloneBasic")
If myCredentials Is Nothing Then
Return Nothing
End If
Else
myCredentials = CType(credentials, NetworkCredential)
End If 'Message encryption scheme :
' a)Concatenate username and password seperated by space
' b)Apply ASCII encoding to obtain a stream of bytes
' c)Apply Base64 Encoding to this array of bytes to obtain our encoded authorization message
message = myCredentials.UserName + " " + myCredentials.Password
'Apply AsciiEncoding to our user name and password to obtain it as an array of bytes
Dim asciiEncoding As Encoding = Encoding.ASCII
Dim byteArray(asciiEncoding.GetByteCount(message)) As Byte
byteArray = asciiEncoding.GetBytes(message)
'Perform Base64 transform
message = Convert.ToBase64String(byteArray)
'The following overloaded contructor sets the 'Message' property of authorization to the base64 string
' *that we just formed and it also sets the 'Complete' property to true and the connection group id
' *to the domain of the NetworkCredential object
Dim myAuthorization As New Authorization("CloneBasic " + message, True, request.ConnectionGroupName)
Return myAuthorization
Catch e As Exception
Console.WriteLine(("Exception Raised ...:" + e.Message))
Return Nothing
End Try
End Function 'Authenticate