2017-05-27 28 views
5

के साथ सर्वर-साइड और क्लाइंट-साइड प्रमाणीकरण को मिलाएं मेरे पास एक विरासत एएसपी.नेट वेबफॉर्म एप्लिकेशन है जिसमें उपयोगकर्ता सर्वर-साइड संसाधित किए गए फ़ॉर्म के माध्यम से लॉगिन करते हैं। यदि दर्ज उपयोगकर्ता नाम + पासवर्ड डेटाबेस में प्रमाण-पत्र से मेल खाता है, तो मैंने सत्रों में कुछ मान निर्धारित किए हैं (उदा।, वर्तमान उपयोगकर्ता आईडी) और Response.Redirect बाद में करें। मैं एक एचटीपीकुकी भी बना रहा हूं, "अगली बार जब मैं विज़िट करता हूं" कार्यक्षमता।वेबएपीआई

वर्तमान में, मैं उस वेब एप्लिकेशन में वेबएपी समर्थन भी जोड़ रहा हूं। मैंने टोकन प्रमाणीकरण को लागू करने में कामयाब रहा है जो मुझे क्लाइंट साइड पर लॉगिन करने की अनुमति देता है।

मैं प्रमाणीकरण दृष्टिकोण दोनों को कैसे जोड़ सकता हूं? मैं उपयोगकर्ता को एक बार अपने प्रमाण पत्र दर्ज करना चाहता हूं, सर्वर पक्ष पर और ग्राहक पक्ष पर प्रमाणीकृत होने के बाद उपयोगकर्ताओं को प्रमाणीकरण के बाद किसी अन्य पृष्ठ पर रीडायरेक्ट करना है।

+2

आप क्या हासिल करना चाहते हैं पर विस्तृत कृपया कर सकते हैं? उपयोगकर्ता प्रमाणीकरण विधि को एक बार प्रमाणीकृत करने के लिए उपयोग करेगा, और यह अन्य विधि से कैसे संबंधित है? क्या आप चाहते हैं कि आपका उपयोगकर्ता फ़ॉर्म के माध्यम से प्रमाणीकृत करे और फिर टोकन-आधारित वेबएपीआई का उपयोग करने में सक्षम हो? (स्वचालित रिलागिन के लिए कुकी कैसे काम करती है? यह मेरे लिए भेद्यता की तरह लगता है, लेकिन जाहिर है, मुझे विवरण नहीं पता हैं।) –

+0

https://stackoverflow.com/questions/549/the-definitive-guide- टू-प्रपत्र-आधारित-वेबसाइट प्रमाणीकरण? RQ = 1 – s3raph86

उत्तर

0

निम्नलिखित कोड उपयोगकर्ता के प्रवेश रखने के लिए एक कुकी पैदा करेगा निम्नलिखित पर जाएँ।

// login etc 
     if (chkRemember.Checked) 
     { 
      // calculate the total number of minutes in 20 days to use as the time out. 
      int timeout = (int)TimeSpan.FromDays(30).TotalMinutes; 

      // create an authentication ticket 
      FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(txtUserName.Text, true, timeout); 

      // Encrypt the ticket 
      string encrptedTicked = FormsAuthentication.Encrypt(ticket); 

      // create the cookie for the ticket, and put the ticket inside 
      HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encrptedTicked); 

      // give cookie and ticket same expiration 
      cookie.Expires = ticket.Expiration; 

      // Attach cookie to current response. it will now to the client and then back to the webserver with every request 
      HttpContext.Current.Response.Cookies.Set(cookie); 

      // send the user to the originally requested page. 
      string requestedPage = FormsAuthentication.GetRedirectUrl(txtUserName.Text, false); 
      Response.Redirect(requestedPage, true); 
     } 
     else 
     { 
      // login without saving cookie to client 
      FormsAuthentication.RedirectFromLoginPage(txtUserName.Text, false); 
     } 
संबंधित मुद्दे