ASP.NET 2.0

Alternativa a Visual Studio

Un piacevole ambiente di sviluppo (che probabilmente esiste da una vita) ma che non conoscevo: http://sharpdevelop.net/OpenSource/SD/Download/   Technorati tags: Visual Studio

Validator e (Auto)Postback

Non si finisce mai di imparare... Lo scenario è una pagina web con un textbox e relativo required validator + un pulsante per effettuare il postback, tutti con lo stesso ValidationGroup. Fino a qui nessun problema, tutto funziona correttamente. Se alla pagina aggiungo una DropDownList con AutoPostBack="true" succede questo: 1. Clicco il pulsante per attivare il validator. 2. Cambio elemento selezionato nella dropdownlist 3. Il postback non avviene a causa dei validatori!!! 4. Cambio di nuovo elemento selezionato nella dropdownlist 5. Il postback avviene correttamente. Pare che la stessa cosa avvenga anche se clicco su un LinkButton presente nella pagina e su qualsiasi elemento che provoca un postback:...

Forum

Era da parecchio che volevo scrivere questo post. Volevo sconsigliare l'uso del forum YetAnotherForum (YAF), progetto rimasto in sospeso per un po' di tempo e ora ripreso. La documentazione è scarsa, sul forum non ti aiuta nessuno... insomma invogliano a comprare l'help. Ho provato per 3 giorni e non sono riuscito a integrarlo con la mia applicazione per avere single sign on. Il forum come applicazione stand-alone, invece, non sembra creare problemi. In mezz'ora, invece, abbiamo integrato (grazie Luca) un forum phpBB3. Technorati tags: Forum

Single Sign On 3/3

SSO per due applicazioni in due sottodomini dello stesso dominio E' il caso di applicazioni del tipo app1.com e app2.app1.com. In questo caso i cookie vengono memorizzati in file differenti e non sono visibili a entrambe le applicazioni. Bisogna utilizzare dei cookie di dominio. Non è possibile utilizzare la RedirectFromLoginPage in quanto non crea un cookie di dominio; è necessario quindi crearli manualmente: FormsAuthenticationTicket  fat = new FormsAuthenticationTicket(1, "ppaperino", DateTime.Now, DateTime.Now.AddYears(1), true, ""); HttpCookie cookie = new HttpCookie(".app2Auth"); cookie.Value = FormsAuthentication.Encrypt(fat); cookie.Expires = fat.Expiration; cookie.Domain = ".app1.com"; HttpContext.Current.Response.Cookies.Add(cookie); FormsAuthenticationTicket fat = new FormsAuthenticationTicket(1, "Paolino Paperino", DateTime.Now, DateTime.Now.AddYears(1), true, ""); HttpCookie cookie = new HttpCookie(".app1Auth"); cookie.Value = FormsAuthentication.Encrypt(fat); cookie.Expires = fat.Expiration; cookie.Domain...

Single Sign On 2/3

Single Sign On con metodi differenti di autenticazione E' il caso di applicazioni che effettuano autenticazione in modo differente (ad esempio, la prima con il proprio database e la seconda con membership API o altre forme di autenticazione). In questo caso il ticket di autenticazione non è adatto per entrambe le applicazioni in quanto conterrebbe solo lo username dell'utente loggato. In questo caso per la seconda applicazione va creato un cookie ad hoc e, ovviamente, va mappato lo user della prima applicazione nella seconda. Supponiamo di avere un utente "Paolino Paperino" nella prima applicazione che viene riconosciuto come "ppaperino" nella seconda. Nella prima applicazione aggiungeremo il seguente...

Single Sign On 1/3

Da un post davvero interessante, mi permetto di parlare di SSO: Molte persone hanno applicazioni che girano sotto versioni differenti del framework .NET, in diversi sottodomini o domini e vorrebbero autenticarsi una volta sola nei vari siti: si parla di Single Sign On. SSO per applicazioni parent/child in una sottodirectory virtuale E' il caso di applicazioni http://app1.com e http://app1.com/app2 con autenticazione Forms. Lo stato dello user loggato viene mantenuto in un cookie sul client. Quando viene richiamata la RedirectFromLoginPage, il cookie viene creato e contiene un FormsAuthenticationTicket criptato con il nome dell'utente loggato. Nel web.config risulta: <authentication mode="Forms">    <forms name=".App1Auth" protection="All" timeout="60" loginUrl="login.aspx" /> </authentication> <authentication mode="Forms">    <forms name=".App2Auth"...

Pseudoquiz - Tanti modi per fare una cosa

Stimolerei il vostro "modo di programmare". Immaginate di avere una combo su una pagina web [c#]. Vi chiedo di riempirla con i giorni della settimana sapendo che nell'applicazione ci sono molte combo di quel tipo. La pagina web deriva da una BasePage : System.Web.UI.Page e ha un metodo già pronto richiamato dalla OnLoad che si chiama PrepareCombo(). Sentiamo varie soluzioni (ovviamente ottimizzate tempi di sviluppo con buon codice). Nei commenti sono ben accette le critiche alle soluzioni proposte. Technorati tags: Csharp

Aspx commentato

Non ho provato in c# ma in vb.net ho commentato del codice html nell'aspx eppure il riferimento ai componenti nel code behind continuava a essere valido. Dato che questa soluzione non mi piaceva (non so se è un malfunzionamento o la normalità), e volendo ripulire anche il code behind, ho dovuto togliere dalla pagina aspx l'intero pezzo che non mi interessava più. La cosa bella è che se commento l'aspx e commento anche il code behind si verifica un errore a runtime sugli eventi usati nell'aspx (es. onClick) dato che risultano non essere più presenti nel code behind... mah! Technorati tags: .NET

Deployment project

Ci sono diversi modi di pubblicare un'applicazione appena finita, ma quello che odio di più è il web deployment project. Data la dimensione delle mie applicazioni mi soddisfa il semplice "Publish". Qualcuno sapeva che il Web Deployment Project considera i file presenti nella cartella del progetto e non solo quelli inclusi? Pare di si dato che ho escluso un po' di file ma ho avuto errori di compilazione di tipo non riconosciuto! Continuerò a usarlo solo in progetti ereditati da altri per evitare eventuali casini di file presenti solo sul server... Technorati tags: .NET

Un sito come una casa

Mi vorrei soffermare su questa splendida similitudine fatta da miei colleghi per fare un paio di riflessioni. Un cliente ha un sito in cui vende il suo prodotto suddiviso in tre macrocategorie (ora non immaginate come categorie l'"acqua" e come prodotto "Acqua Frizzante 6 bottiglie da 1 litro Marca x" - pensate piuttosto "generi alimentari"). Il sito è ovviamente dinamico però la chiave delle categorie è cablata - a modo - nel codice a causa di alcune specifiche imposte dal cliente stesso. Un giorno il cliente chiede di togliere una di queste categorie. Si fa, il sito è stato fatto da poco, non vogliamo...

Full ASP.NET 2.0 Archive

«febbraio»
domlunmarmergiovensab
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910