Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Autenticação

A autenticação é o processo de descoberta e verificar a identidade de uma entidade de segurança revisando as credenciais do usuário e validando essas credenciais em qualquer autoridade. As informações obtidas durante a autenticação é diretamente utilizável por seu código. Você também pode usar a segurança com base no.NET Framework para autenticar o usuário atual e para determinar se deve permitir que a entidade de segurança para acessar seu código. Consulte as sobrecargas do método de WindowsPrincipal.IsInRole para obter exemplos de como autenticar a entidade de segurança para funções específicas. Por exemplo, você pode usar a sobrecarga de WindowsPrincipal.IsInRole(String) para determinar se o usuário atual é um membro do grupo administradores.

Uma variedade de mecanismos de autenticação são usados atualmente, muitos de que pode ser usado com o .NET Framework a segurança baseada em. Alguns dos mecanismos usados com mais frequência são básicos, resumo, passport, o sistema operacional (como NTLM ou Kerberos), ou mecanismos definidos pelo aplicativo.

O exemplo a seguir requer que a entidade de segurança ativo é um administrador. O parâmetro de name é null, que permite a qualquer usuário que for um administrador para transmitir a demanda.

Observação Observação

No Windows Vista, Controle de Conta de Usuário (UAC) determina os privilégios de um usuário. Se você for um membro do grupo administradores internos, você tenha dois tokens de acesso de tempo de execução: um token padrão de acesso do usuário e um token de acesso de administrador. Por padrão, está na função de usuário padrão. Para executar o código que o requer ser um administrador, você deve primeiro elevar seus privilégios do usuário padrão para o administrador. Você pode fazer isso quando você inicia um aplicativo clique com o botão direito do mouse no ícone de aplicativo e indicando que você deseja executar como administrador.


using System;
using System.Threading;
using System.Security.Permissions;
using System.Security.Principal;

class SecurityPrincipalDemo
{

    public static void Main()
    {
        AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
        PrincipalPermission principalPerm = new PrincipalPermission(null, "Administrators");
        principalPerm.Demand();
        Console.WriteLine("Demand succeeded.");
    }
}


O exemplo a seguir demonstra como determinar a identidade da entidade de segurança e funções disponíveis para a entidade de segurança. Um aplicativo deste exemplo pode ser confirmar que o usuário atual está em uma função que você permite usando seu aplicativo.


using System;
using System.Threading;
using System.Security.Permissions;
using System.Security.Principal;

class SecurityPrincipalDemo
{
    public static void DemonstrateWindowsBuiltInRoleEnum()
    {
        AppDomain myDomain = Thread.GetDomain();

        myDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
        WindowsPrincipal myPrincipal = (WindowsPrincipal)Thread.CurrentPrincipal;
        Console.WriteLine("{0} belongs to: ", myPrincipal.Identity.Name.ToString());
        Array wbirFields = Enum.GetValues(typeof(WindowsBuiltInRole));
        foreach (object roleName in wbirFields)
        {
            try
            {
                // Cast the role name to a RID represented by the WindowsBuildInRole value.
                Console.WriteLine("{0}? {1}.", roleName,
                    myPrincipal.IsInRole((WindowsBuiltInRole)roleName));
                Console.WriteLine("The RID for this role is: " + ((int)roleName).ToString());

            }
            catch (Exception)
            {
                Console.WriteLine("{0}: Could not obtain role for this RID.",
                    roleName);
            }
        }
        // Get the role using the string value of the role.
        Console.WriteLine("{0}? {1}.", "Administrators",
            myPrincipal.IsInRole("BUILTIN\\" + "Administrators"));
        Console.WriteLine("{0}? {1}.", "Users",
            myPrincipal.IsInRole("BUILTIN\\" + "Users"));
        // Get the role using the WindowsBuiltInRole enumeration value.
        Console.WriteLine("{0}? {1}.", WindowsBuiltInRole.Administrator,
           myPrincipal.IsInRole(WindowsBuiltInRole.Administrator));
        // Get the role using the WellKnownSidType.
        SecurityIdentifier sid = new SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null);
        Console.WriteLine("WellKnownSidType BuiltinAdministratorsSid  {0}? {1}.", sid.Value, myPrincipal.IsInRole(sid));
    }

    public static void Main()
    {
        DemonstrateWindowsBuiltInRoleEnum();
    }
}


Contribuições da comunidade

Mostrar: