Wcf Data Services i autentificació per forms

Quina sorpresa aquest mati quan he publicat una aplicació que estic desenvolupant feta en Silverlight.

Evidentment com tot developer en un entorn de desenvolupament cap problema però quan es passa a l’entorn release apareixen problemes inesperats.

L’aplicació utilitza WCF Data Services, tecnología de la qual, trobo que és molt interessant. Aquesta tecnología que utilitza el protocol REST es basa en unes crides Http a una Uri. Aquesta Uri és un WCF, per tant, una extensió .svc que en primera vista sembla que hagi de funcionar igual que qualsevol recurs que es troba dins una web.

Em refereixo a que no hauria de funcionar sota un entorn anònim? Doncs si, si que funciona.

No hauria de funcionar sota autentificació per windows? Doncs si, si que funciona

Per tant, i només em queda, no hauria de funcionar sota autentificació per formularis? Doncs NO exactament.

Però per què? quin és el motiu? no estem parlant de peticions Http (Get, Post, Delete, Put)? No ens han ensenyat que aquestes peticions passen per un IIS que en verifica els permisos? (aplicable al IIS7)

Doncs exactament no sé quin és el motiu però he hagut de fer servir en google per trobar la solució al problema que s’em presentava.

La resposta l’he trobada aquí: http://blogs.msdn.com/b/astoriateam/archive/2010/07/21/odata-and-authentication-part-7-forms-authentication.aspx

Es tracta d’utilitzar interceptors per verificar si la petició bé o no autenticada i deixar la ruta (Uri) obert, és a dir, amb accés anònim!.

La solució no és dificil, no patiu. Però no hauria de ser tot més senzill?

Advertisements

Deixa un comentari

Fill in your details below or click an icon to log in:

WordPress.com Logo

Esteu comentant fent servir el compte WordPress.com. Log Out / Canvia )

Twitter picture

Esteu comentant fent servir el compte Twitter. Log Out / Canvia )

Facebook photo

Esteu comentant fent servir el compte Facebook. Log Out / Canvia )

Google+ photo

Esteu comentant fent servir el compte Google+. Log Out / Canvia )

Connecting to %s