A napokban foglalkoztam egy kicsit azzal, hogy egy MVC-s weboldalt hogyan lehet Facebookkal integrálni. A legfontosabb lépéseket meg is tettem. Készítettem saját Identity-t, ami implementálja az IIdentity és az ISerializable interfészeket, ahogy az javasolják is.
Teszteltem az alkalmazást és azt tapasztaltam, hogy a facebookos belépés IIS alatt tökéletesen működik, míg development szerver alatt elszáll. Ez azért érdekes, mert a kész fb:login-button-t használom. A hiba az alábbi
Kicsit kutakodtam a témában és gyorsan meg is találtam a megoldást egy fórumban http://forums.asp.net/t/1469217.aspx. Az egyszem gond, hogy azt javasolja, hogy ilyen esetben azt az osztályt, amiben implementáltuk a sjaát Identity-t a GAC-ba kell másolni (és e miatt erős névvel kell ellátni). Erre azért van szükség, hogy a sorosítás helyesen tudjon működni, és megtalálja az MVC a saját Identity osztályunkat, ami ugye implementája az ISerializable inderfészt.
A megoldás alapvetően jó, csak nem szeretnék a GAC-ba olyan szerelvényt tenni ami gyakran fog változni (legalábbis a fejlesztés alatt). A tökéletes megoldást az nyújtotta, hogy a DevServernek is van egy olyan könyvátra, mint a Visual Studionak a Private Assembly könyvtára. Ez pedig nem más mint a %ProgramFiles%\Common Files\microsoft shared\DevServer\10.0 Ha ide bemásoljuk a megfelelő osztályt tartamazó dll-t (ekkor nem kell erős névvel ellátni), akkor DevSzerver alatt is tökéletesen fog menni az alkalmazás, és a GAC-ban sem kell matatni.