uLogin ASP.Net वेबसाइट पर

ULogin को एक asp.net साइट पर फास्ट करने के लिए कुछ दिन लग गए, लेकिन किसी तरह मैं अभी समाप्त कोड नहीं पा सका। निश्चित रूप से कोई इस मुद्दे पर चलेगा ...


मेरी पसंद पर कि क्या मेरी परियोजनाओं में uLogin ( Habré पर समीक्षा ) का उपयोग करना है, कुछ आंकड़े प्रभावित हुए। हम संसाधन के अधिकार में नहीं जाएंगे, मेरे लिए, किसी कारण से, यह पर्याप्त था। सेवा काफी सरल और सुविधाजनक रूप से बनाई गई है - आप अपनी साइट के पते को इंगित करते हैं, आवश्यक प्राधिकरण प्रदाताओं के बटन का चयन करते हैं और कोड के कुछ टुकड़े प्राप्त करते हैं जो आपको अपनी साइट पर रखने की आवश्यकता होती है। यदि HTML कोड वास्तव में इस बात पर निर्भर नहीं करता है कि साइट क्या बनाई गई थी, तो प्रस्तावित php कोड ने किसी तरह मेरे लिए काम नहीं किया। नतीजा क्या हुआ :)

परिणामी html मैंने साइट के मास्टर पेज पर पोस्ट किया।

< script src ="http://ulogin.ru/js/ulogin.js" ></ script > < div id ="uLogin" x-ulogin-params ="display=small;optional=email,sex;fields=first_name,last_name,photo;providers=vkontakte,facebook,twitter,odnoklassniki,google;hidden=yandex,mailru,livejournal,openid,liveid;redirect_uri=http%3A%2F%2Fmysite.ru%2Fauth.aspx" ></ div > * This source code was highlighted with Source Code Highlighter .
  1. < script src ="http://ulogin.ru/js/ulogin.js" ></ script > < div id ="uLogin" x-ulogin-params ="display=small;optional=email,sex;fields=first_name,last_name,photo;providers=vkontakte,facebook,twitter,odnoklassniki,google;hidden=yandex,mailru,livejournal,openid,liveid;redirect_uri=http%3A%2F%2Fmysite.ru%2Fauth.aspx" ></ div > * This source code was highlighted with Source Code Highlighter .
  2. < script src ="http://ulogin.ru/js/ulogin.js" ></ script > < div id ="uLogin" x-ulogin-params ="display=small;optional=email,sex;fields=first_name,last_name,photo;providers=vkontakte,facebook,twitter,odnoklassniki,google;hidden=yandex,mailru,livejournal,openid,liveid;redirect_uri=http%3A%2F%2Fmysite.ru%2Fauth.aspx" ></ div > * This source code was highlighted with Source Code Highlighter .
< script src ="http://ulogin.ru/js/ulogin.js" ></ script > < div id ="uLogin" x-ulogin-params ="display=small;optional=email,sex;fields=first_name,last_name,photo;providers=vkontakte,facebook,twitter,odnoklassniki,google;hidden=yandex,mailru,livejournal,openid,liveid;redirect_uri=http%3A%2F%2Fmysite.ru%2Fauth.aspx" ></ div > * This source code was highlighted with Source Code Highlighter .


पता पुनर्निर्देशित_यूरी इंगित करता है कि उपयोगकर्ता को उसके द्वारा भेजे गए प्रदाता के माध्यम से प्राधिकरण पास करने के बाद (यू लोजिन टोकन के साथ) भेजा जाएगा। एक टोकन प्राप्त करने के बाद, आपको uLogin पर जाना होगा और उपयोगकर्ता की जानकारी मांगनी होगी।

  1. string link = string .Format ( "http://ulogin.ru/token.php?token=ministr0arios&host=find1}" , Request.Form [ "token" ]।
  2. Request.ServerVariables [ "SERVER_NAME" ]);
  3. WebRequest reqGET = WebRequest.Create (लिंक);
  4. string answer = "" ;
  5. उपयोग (WebResponse उत्तर = reqGET.GetResponse ())
  6. {
  7. उपयोग ( स्ट्रीम स्ट्रीम = resp.GetResponseStream ())
  8. {
  9. अगर (धारा! = अशक्त )
  10. का उपयोग कर (StreamReader sr = new StreamReader (स्ट्रीम))
  11. {
  12. उत्तर = sr.ReadToEnd ();
  13. }
  14. }
  15. }


जवाब में, हमें एक jSON स्ट्रिंग मिलती है, जिसे मैंने इस प्रकार निपटाया है:

  1. सार्वजनिक वर्ग JSONHelper
  2. {
  3. सार्वजनिक स्थैतिक टी Deserialise <T> ( स्ट्रिंग जसन)
  4. {
  5. टी obj = Activator.CreateInstance <T> ();
  6. (MemoryStream ms = new MemoryStream ( एन्कोडिंग .Unicode.GetBytes (json))) का उपयोग करना
  7. {
  8. DataContractJsonSerializer क्रमांक = नया DataContractJsonSerializer (obj.GetType ());
  9. obj = (T) serialiser.ReadObject (ms);
  10. }
  11. वापसी obj;
  12. }
  13. }
  14. सार्वजनिक वर्ग iUser
  15. {
  16. सार्वजनिक स्ट्रिंग नेटवर्क { मिलता है ; सेट ; }
  17. सार्वजनिक स्ट्रिंग Uid { प्राप्त करें ; सेट ; }
  18. सार्वजनिक स्ट्रिंग FirstName { प्राप्त करें ; सेट ; }
  19. सार्वजनिक स्ट्रिंग LastName { get ; सेट ; }
  20. सार्वजनिक स्ट्रिंग ईमेल { get ; सेट ; }
  21. सार्वजनिक स्ट्रिंग सेक्स { प्राप्त करें ; सेट ; }
  22. सार्वजनिक ओवरराइड स्ट्रिंग ToString ()
  23. {
  24. वापसी स्ट्रिंग .Format ( "नेटवर्क = {0}, uid = {1}, first_name = {2}, last_name = {3}" , नेटवर्क, Uid, FirstName, LastName);
  25. }
  26. }


उलोगिन कुछ अन्य विशेषताओं के लिए पूछ सकते हैं। मैंने कुछ वैकल्पिक पैरामीटर को जोड़ा ताकि उपयोगकर्ता को अनावश्यक प्रश्नों के साथ न जोड़ा जा सके (यदि प्रदाता इसे पारित नहीं कर सकता है तो एक ईमेल पता दर्ज करें)

यह वंचित करने के लिए बनी हुई है:

  1. iUser usr = JSONHelper.Deserialise <iUser> (उत्तर);


ठीक है, तो हर कोई खुद के लिए फैसला करता है कि प्राप्त आंकड़ों के साथ क्या करना है। एक उदाहरण के रूप में, इसे अपने डेटाबेस में डालें और साइट पर प्राधिकरण के लिए टोकन के साथ उपयोगकर्ता को कुकी भेजें।

उनके खातों का परीक्षण किया गया। शायद अधिक व्यापक उपयोग मौजूदा कीड़े की पहचान करने में सक्षम होंगे।
मुझे उम्मीद है कि समाधान न केवल छोटा है, बल्कि उपयोगी भी है।

Source: https://habr.com/ru/post/In142631/


All Articles