16 messaggi dal 07 maggio 2013
www.infomidia.it
Salve a tutti,
ho creato un login con facebook come mostrato in questa pagina:
http://www.codeproject.com/Articles/450535/Using-Facebook-login-in-ASP-NET-application-withou

l'id utente viene caricato in un hiddenfield e funziona tutto bene.

Adesso però ho un problema nel Page_Load: se provo a caricare il valore del campo mi risulta vuoto, se invece aspetto il caricamento della pagina al clic di un button mi restituisce il valore corretto.

Come faccio a caricare l'id (hiddenfield value) senza aspettare il caricamento di tutta la pagina?

Spero di esser stato chiaro, grazie in anticipo.

---------------------------------------------------------------------------------------------------------------------------------


http://www.infomidia.it/

Domenico
Modificato da infomidia il 27 giugno 2013 21.22 -
Modificato da infomidia il 27 giugno 2013 21.24 -
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,

infomidia ha scritto:

l'id utente viene caricato in un hiddenfield e funziona tutto bene.

Fai attenzione perché in quel modo l'utente può variare il suo Facebook id a piacimento. Usando uno strumento tipo Firebug è possibile alterare il contenuto dell'hiddenfield prima che sia reinviato al server con la pressione del Button.

infomidia ha scritto:

Come faccio a caricare l'id (hiddenfield value) senza aspettare il caricamento di tutta la pagina?

E' possibile ma non nel modo che viene descritto in quell'articolo.
Vedi, la javascript SDK di Facebook gira nel browser client, quindi può funzionare solo dopo che la pagina ASP.NET ha ormai terminato la sua esecuzione ed è stata trasmessa.
Ne consegue che, finché l'utente non si logga a Facebook dalla tua applicazione usando l'apposito bottone (o con FB.login), non c'è proprio modo di leggere il suo facebook id dal Page_Load.

L'utenticazione non può neanche essere effettuata lato server, dato che OAuth, il meccanismo di autenticazione di Facebook, prevede che l'utente inserisca le sue credenziali in una pagina su facebook.com, che in questo genere di integrazioni di solito appare in popup.

Quando finalmente l'utente ha effettuato il login, allora la javascript SDK scriverà un cookie denominato fbsr_tuoApplicationID. Il suo contenuto è la signed request, cioè un blocco di testo che va parsato e verificato usando la tua chiave segreta dell'applicazione, che puoi ottenere dalla sezione apps di Facebook Developers.
Trattandosi di un cookie, il browser te lo invierà ad ogni successiva richiesta dell'utente e quindi potrai leggerlo nel Page_Load della tua pagina.
All'interno ci troverei il facebook Id e un codice hash che userai per confermare che i dati non siano stati alterati dall'utente, ma siano quelli originali generati da Facebook. E' importantissimo fare questa verifica, ad esempio se usi il facebook Id come identificativo per far votare gli utenti in un concorso a premi.

Se vuoi mantenere lo spirito del "without external libraries", come nell'articolo che hai postato, allora qui puoi vedere come estrarre informazioni dalla signed request.
http://blog.johnavis.com/blog/default.asp?id=605

Tuttavia, se stai sviluppando un nuovo progetto, dovresti dare un'occhiata al nuovo template Facebook application di MVC4, rilasciato con il recente update ASP.NET and Web Tools 2012.2.

Se questo non è possibile, puoi comunque scaricare da Nuget la Facebook SDK per .NET che ti semplifica le operazioni di cui abbiamo parlato.

ciao
Modificato da BrightSoul il 29 giugno 2013 10.10 -

Enjoy learning and just keep making
16 messaggi dal 07 maggio 2013
www.infomidia.it
BrightSoul ha scritto:

http://blog.johnavis.com/blog/default.asp?id=605

Tuttavia, se stai sviluppando un nuovo progetto, dovresti dare un'occhiata al nuovo template Facebook application di MVC4, rilasciato con il recente update ASP.NET and Web Tools 2012.2.

come al solito la tua risposta è puntuale ed esaustiva. Avevo intuito che non si potesse caricare l'ID con gli eventi Page, ma non sapevo che questo potesse esser cambiato.
Il sito è stato sviluppato con le classiche webform, però è molto utile il tuo suggerimento per future applicazioni.
Non mi resta che provare ad implementare il login come spiegato sull'altro sito che mi hai suggerito (http://blog.johnavis.com/blog/default.asp?id=605 ).
Per ora grazie.
Modificato da infomidia il 07 luglio 2013 21.27 -

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.