Domanda

Ecco cosa ho cercato di fare

Crea un'applicazione ASP.NET MVC 3 con Autenticazione dei moduli e Active Directory. Il server Web e il database sono diversi server fisici, quindi un doppio hop.

Pensavo che la risposta fosse questo vecchio articolo su Transizione di delega e protocollo vincolati? Finora non sono stato in grado di far funzionare la tecnica.

Sto testando questo dal mio Dev Machine (Windows 7, IIS7) per il server Web prima di distribuire su Windows 2008 (IIS7) nella configurazione della produzione. Windows 2008 farebbe la differenza?

Cosa funziona e cosa fallisce

Sono in grado di accedere con le forme autentica e l'appartenenza all'annuncio. Questo sembra funzionare bene. Quando provo a effettuare una chiamata di database utilizzando questo codice:

public void AsUser(Action action)
    {
        using (var id = new WindowsIdentity(User.Identity.Name + @"@example.com"))
        {
            WindowsImpersonationContext context = null;
            try
            {
                context = id.Impersonate();
                action.Invoke();
            }
            catch (Exception ex)
            {
                // ex.Message is The type initializer for System.Data.SqlClient.SqlConnection threw an exception
                // buried inner exeption is Requested registry access is not allowed
            }
            finally
            {
                if (context != null)
                {
                    context.Undo();
                }
            }
        }
    }

Non riesce con un'eccezione che mi porta a credere di avere problemi di configurazione sul mio Server Dev locale. L'eccezione interiore è Requested registry access is not allowed.

Se imposto un punto di interruzione e ispezione il WindowsIdentity dopo il Impersonate() Chiama vedo che il ImpersonationLevel è impostato per Identification. Questo sembra un indizio che non sia configurato correttamente. Qualcuno può confermare?

Sono sulla strada giusta e questo è anche possibile per configurare? Eventuali suggerimenti sarebbero apprezzati.

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top