Per fare in modo che l'autenticazione su Active Directory funzioni su più domini attraverso una singola pagina di autenticazione è necessario seguire le indicazioni dello script #827, ripetendo la definizione di un provider specifico per ognuno dei domini sui quali si vuole effettuare l'autenticazione.
Successivamente alla registrazione ed alla definizione dell'autenticazione via Forms e delle autorizzazioni è necessario sostituire la pagina di login con una custom.
Non si possono infatti utilizzare i controlli di default, in quanto non rendono possibile l'utilizzo di un provider secondo le modalità da noi desiderate.
Per fare questo è dunque necessario disegnare una nuova form con due Textbox, una per username e l'altra per la password, ed una DropDownList con la selezione dei domini su cui poter agire. Infine va aggiunto un pulsante, al cui click potrà essere eseguito un codice come il seguente:
protected void LoginButton_Click(object o, EventArgs e) { // prendiamo il provider selezionato nella DropDownList MembershipProvider domainProvider = Membership.Providers[DomainList.SelectedValue]; // controlliamo se l'utente è loggato e procedi all'autenticazione if (domainProvider.ValidateUser(UserName.Text, Password.Text)) FormsAuthentication.RedirectFromLoginPage(); else NotValidCredentials.Visible = true; }
Anche se è specifica per risolvere questo problema, in realtà questa tecnica può essere usata per tutti quei casi in cui sia necessario scegliere in maniera programmatica il provider da utilizzare.
Approfondimenti
#827 - Configurare il provider per Active Directory di Membership API
https://www.aspitalia.com/script/827/Configurare-Provider-Active-Directory-Membership-API.aspx
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.