Pergunta

Eu tenho um aplicativo que tem representação utilizados por toda parte. Mas quando um usuário está conectado como um administrador, uma operação de poucos obrigá-los a escrever para o próprio servidor. Agora, se esses usuários não têm direitos sobre o servidor real (alguns não) que não vai deixá-los escrever.

O que eu quero fazer é desligar representação para apenas comandos casal.

Existe uma maneira de fazer algo assim?

using(HostingEnvironment.Impersonate.Off())
  //I know this isn't a command, but you get the idea?

Obrigado.

Foi útil?

Solução

Verifique se o pool de aplicativos não tem os direitos adequados que você precisa.

Então, quando você quiser reverter para a identidade do agrupamento de aplicações ... execute o seguinte:

private WindowsImpersonationContext context = null;
public void RevertToAppPool()
{
    try
    {
        if (!WindowsIdentity.GetCurrent().IsSystem)
        {
            context = WindowsIdentity.Impersonate(System.IntPtr.Zero);
        }
    }
    catch { }
}
public void UndoImpersonation()
{
    try
    {
        if (context != null)
        {
            context.Undo();
        }
    }
    catch { }
}

Outras dicas

Eu não tenho certeza se esta é a abordagem preferida, mas quando eu queria fazer isso eu new'd-se uma instância de uma WindowsIdentity e chamou o método Impersonate . Isso permite que código subseqüente para representar um usuário diferente do Windows. Ele retorna um WindowsImpersonationContext que tem um < a href = "http://msdn.microsoft.com/en-us/library/system.security.principal.windowsimpersonationcontext.undo.aspx" rel => método Undo "noreferrer nofollow", que reverte o contexto de representação volta novamente.

Você pode desativar a autenticação para a página e, em seguida, passar por manualmente o usuário autenticado durante o resto do seu código.

http://support.microsoft.com/kb/306158

Isto tem uma referência a essa última parte, mas basicamente você representar User.Identity

Isto significa que você terá que passar no início de qualquer chamada para a página, desligá-lo quando você precisar dele fora, em seguida, ligá-lo novamente quando tiver terminado, mas deve ser uma solução viável.

Eu só acabou dando as pastas escrever permissões para "usuários autenticados"

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top