Authorization Construtores

Definição

Cria uma nova instância da Authorization classe.

Sobrecargas

Name Description
Authorization(String)

Cria uma nova instância da Authorization classe com a mensagem de autorização especificada.

Authorization(String, Boolean)

Cria uma nova instância da Authorization classe com a mensagem de autorização e o estado de conclusão especificados.

Authorization(String, Boolean, String)

Cria uma nova instância da Authorization classe com a mensagem de autorização especificada, o estado de conclusão e o identificador do grupo de ligação.

Authorization(String)

Cria uma nova instância da Authorization classe com a mensagem de autorização especificada.

public:
 Authorization(System::String ^ token);
public Authorization(string token);
new System.Net.Authorization : string -> System.Net.Authorization
Public Sub New (token As String)

Parâmetros

token
String

A mensagem de autorização encriptada esperada pelo servidor.

Exemplos

O seguinte exemplo de código mostra como criar um Authorization objeto.

// 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

Observações

A Authorization instância é criada com a Message propriedade definida em token e a Complete propriedade definida em true.

Aplica-se a

Authorization(String, Boolean)

Cria uma nova instância da Authorization classe com a mensagem de autorização e o estado de conclusão especificados.

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)

Parâmetros

token
String

A mensagem de autorização encriptada esperada pelo servidor.

finished
Boolean

O estado de conclusão da tentativa de autorização. true se a tentativa de autorização estiver concluída; caso contrário, false.

Exemplos

O exemplo de código seguinte cria uma nova instância da Authorization classe com a mensagem de autorização e o estado de conclusão especificados.

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

Observações

A Authorization instância é criada com a Message propriedade definida em token e a Complete propriedade definida em finished.

Aplica-se a

Authorization(String, Boolean, String)

Cria uma nova instância da Authorization classe com a mensagem de autorização especificada, o estado de conclusão e o identificador do grupo de ligação.

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)

Parâmetros

token
String

A mensagem de autorização encriptada esperada pelo servidor.

finished
Boolean

O estado de conclusão da tentativa de autorização. true se a tentativa de autorização estiver concluída; caso contrário, false.

connectionGroupId
String

Um identificador único que pode ser usado para criar ligações privadas cliente-servidor que são vinculadas apenas a este esquema de autenticação.

Exemplos

O exemplo de código seguinte cria uma nova instância da Authorization classe com a mensagem de autorização especificada, o estado de conclusão e o identificador do grupo de ligação.

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

Aplica-se a