Impersonation in un'applicazione ASP.NET

by Andrea 28 January 2008 11:01
Nell'applicazione a cui stò lavorando, c'era l'esigenza di salvare le immagini caricate in un server differente da quello che ospita il website. Questo perchè l'applicazione è hostata in un cluster e i file vengono replicati dal primo nodo verso gli altri, e nel caso le immagini fossero caricate in un nodo che non fosse il primo, non sarebbero presenti negli altri server che compongono il cluster. (Sembra un gioco di parole, ma spero di essere stato chiaro ;))

PROBLEMA: Tentando di accedere al server1 per il salvatggio del file (passando il path \\server1\nomecartella) mi ritrovavo con un bel errore di security in quanto l'utente network service non ha i permessi per accedere alla cartella in questione (che stà in un server differente).

SOLUZIONE: Per risolvere il tutto, ho dovuto applicare l'impersonation, che consiste nell'impersonare un utente che abbia i diritti per accedere alla cartella e salvare i file.
A riguardo vi posto il link contenente il codice necessario, che mi ha risolto il problema: How to implement impersonation in an ASP.NET application ed un'altro link simile: Programmatically Impersonate a user in ASP.NET NOTE:
  • ricordatevi di creare l'utente in tutti i nodi del cluster, e non fate come me, che ho perso 2 ore per capire il perchè mi ritrovassi con un errore di autenticazione fallita. :D
  • ricordatevi di utilizzare l'impersonation per le sole operazione che realmente lo necessitano, in quanto l'applicazione avrebbe privilegi maggiori.
E mi raccomando, non impersonatevi troppo :D

Technorati Tags: ,,

Tags:

ASP .NET

Comments are closed