Verificare la firma Facebook Connect

voti
1

Ho seguito le istruzioni riportate in questa grande domanda StackOverflow , ma non sono sicuro di questa cosa verificare la firma. E 'questo, in qualche modo fornito nel Toolkit Facebook o devo fare qualcosa di me stesso? La documentazione non è superclear su come fare questo e se è già cotto nel toolkit facebook Non voglio spendere molto tempo su di esso.

Chiunque ha fatto questo? Dovrebbe parlare io uso un'applicazione Web ASP.NET standard C #. Qualsiasi aiuto sarebbe apprezzato!

È pubblicato 27/02/2009 alle 10:45
fonte dall'utente
In altre lingue...                            


2 risposte

voti
1

Al momento, è necessario farlo da soli. Ho fornito un metodo semplice è possibile chiamare per vedere se la firma è valida o meno.

private bool IsValidFacebookSignature()
    {
        //keys must remain in alphabetical order
        string[] keyArray = { "expires", "session_key", "ss", "user" };
        string signature = "";

        foreach (string key in keyArray)
            signature += string.Format("{0}={1}", key, GetFacebookCookie(key));

        signature += SecretKey; //your secret key issued by FB

        MD5 md5 = MD5.Create();
        byte[] hash = md5.ComputeHash(Encoding.UTF8.GetBytes(signature.Trim()));

        StringBuilder sb = new StringBuilder();
        foreach (byte hashByte in hash)
            sb.Append(hashByte.ToString("x2", CultureInfo.InvariantCulture));

        return (GetFacebookCookie("") == sb.ToString());
    }

    private string GetFacebookCookie(string cookieName)
    {
        //APIKey issued by FB
        string fullCookie = string.IsNullOrEmpty(cookieName) ? ApiKey : ApiKey + "_" + cookieName;

        return Request.Cookies[fullCookie].Value;
    }

Nota: secretkey e apikey sono valori forniti da Facebook che è necessario impostare.

Risposto il 03/06/2009 a 03:40
fonte dall'utente

voti
0

È possibile farlo utilizzando FBConnectAuth , lo fa lo stesso come sopra, e un po 'di più.

Risposto il 27/08/2009 a 00:02
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more