ASP.NET 3.5 Application Services (Membership, Roles, Profile API) sotto Classic ASP con IIS 7.0

Ci sono alcune cose che, per quanto ASP.NET 2.0 con il suo DefaultHttpHandler ed IIS 6.0 possano tentare di garantire, solo l'accoppiata ASP.NET 3.5+IIS 7.0 riescono a portare egregiamente a termine. Fermo restando che ASP.NET 3.5 è prettamente un nome "marketing" dato ad ASP.NET 2.0+SP1+alcune funzionalità che in realtà sono marginali rispetto a quello che mi pongo di fare in questo caso.

Siccome ormai ho capito che nella vita le cose più assurde toccano a me :), in questi giorni ho finito un progettino che avevo cominciato, se non ricordo male, ai primi Community Days e poi avevo abbandonato per manca di tempo, aiutato dal fatto che la voce l'ho lasciata a qualche centinaio di km da casa e quindi posso stare più a scrivere e meno al telefono rispetto al solito.

Ad ogni modo, fermo restando che alcune cose sono possibili anche usando IIS 6.0+ASP.NET 2.0 e che io non le userei mai in produzione per il semplice fatto che l'integrated pipeline di IIS 7.0 ha performance che non sono nemmeno lontanamente paragonabili a quelle della pipeline classica, che ripete sia per la parte managed che per quella unmanaged le stesse identiche operazioni, il risultato è molto interessante.

Quello che IIS 7.0 consente è molto più bello, performante ed integrato. E se lo provate sotto IIS 6.0, semplicemente riceverete una bella PlatformNotSupportedException, nel caso specifico.

Siccome il team ha "sganciato" quelli che sono chiamati gli Application Services, cioè Membership, Roles e Profile API, per renderli disponibili via AJAX, WCF o anche WinForms, WPF o quello che vi pare, per integrare queste informazioni in ambiti diversi, sulla scia di un paio di progetti per altrettanti clienti, ho provato a fare lo stesso per la parte "legacy" di un'applicazione, coadiuvato dal fatto che ora c'è la possibiltà di scrivere nelle Header della richiesta e quindi recuperarle da, ad esempio, Classic ASP o PHP, JSP, Python, CGI e chissà cos'altro.

Per cui ho fatto una bella solution con la mia FormsAuthentication, Membership, Roles e Profile API attivate, ho creato un semplice HttpModule che nell'evento BeginRequest dell'applicazione scrive nele header quello che mi serve prima che arrivi al vero Handler la palla. Ed il risultato è questo:

image

Le righe di codice che con Classic ASP recuperano il tutto sono le seguenti:

 Username: <%=Request.ServerVariables("AUTH_USER") %><br /> 
Roles from ASP.NET Role API: <% 
Dim roles 
roles = Request.ServerVariables("HTTP_Roles") 
Response.Write(roles) 
%>
 

Appena finisco di sistemare un po' di dettagli riguardo Profile API, che è un po' più lungo da sistemare, l'aggiungerò nel lab.

Poi non venite a dirmi che IIS 7.0 in realtà non è 300 mila passi in avanti rispetto alla 6.0 ;)

Commenti
ASP.NET 3.5 Application Services (Membership, Roles, Profile API) sotto Classic ASP con IIS 7.0

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Nella stessa categoria
I più letti del mese
TAG CLOUD
.NET Framework, .NET Framework 2.0, .NET Framework 3.0, .NET Framework 3.5, .NET Framework 4.0, .NET Micro Framework, 10annidi, ADO.NET, AJAX, Architettura, ASP, ASP.NET, ASP.NET 2.0, ASP.NET 2.0 per tutti, ASP.NET 3.5, ASP.NET 3.5 per tutti, ASP.NET 4.0, ASP.NET 4.0 Guida completa, ASP.NET AJAX, ASP.NET Charting, ASP.NET MVC, ASPItalia.com, C# 4 Guida completa, Cache, Community Days 2010, Community Days 2012, CSS, Custom Control, Database, Databinding, Datagrid, Deployment, Dynamic Data Control, Entity Framework, Expression Blend, HTML 5 Espresso, HTML5, HttpHandler, HttpModule, HttpRuntime, IIS, ISAPI, Javascript, jQuery, LINQ, LINQ to Entities, LINQ to SQL, LogParser, Master Pages, Media Center, Membership API, Metro, Microsoft Expression, MIX11, Model Virtual Casting, Mono, MySQL, Object Oriented Programming, Off Topic, Office, ORM, Parallel FX, Pattern, PDC 2008, Profile API, Provider Model, Real Code Day 6, Report, Roles API, Security, SEO, Silverlight, Silverlight 2.0, Silverlight 3.0, Silverlight 3.0 Guida Completa, Silverlight 4.0, SQL Server, User Control, Visual Basic 2010 Guida completa, Visual Studio, WCF Data Services, WCF RIA Services, Web Service, web.config, Windows 7, Windows 8, Windows Azure, Windows Client, Windows Communication Foundation, Windows Identity Foundation, Windows Live Services, Windows Phone, Windows Phone - il libro, Windows Phone 7, Windows Phone 7.1, Windows Presentation Foundation, Windows Server, Windows Vista, WinRT, XAML, XBox 360, XHTML, XML, XNA, XSLT
BLOG INFO
  • 1.019 post, 438 commenti, 195 trackback
  • Feed blog: RSS Atom
In evidenza