यदि आप ओपनआईडी प्रदाता को एक अलग यूआरएल पर वापस लौटना चाहते हैं, तो आपको प्रमाणीकरण अनुरोध बनाते समय OpenIdRelyingParty.CreateRequest(Identifier userSuppliedIdentifier, Realm realm, Uri returnToUrl)
विधि का उपयोग करने की आवश्यकता है।
हालांकि, आम तौर पर आप नहीं OpenID प्रदाता url है जो अपने एप्लिकेशन में लॉगिन अनुक्रम शुरू की के लिए वापस रीडायरेक्ट करना चाहते हैं। आप उस बिंदु पर वापस आना चाहते हैं जहां आपने ओपनआईडी ऑथ को सही तरीके से प्रतिक्रिया देने के लिए शुरू किया था। ओपनआईडी परत को अपने ऐप में शेष तर्क से encapsulating में मदद करता है।
यहाँ एक उदाहरण है:
मेरी ASP.NET MVC अनुप्रयोग में, मैं Authenticate
कार्रवाई जो लॉगिन अनुरोधों को प्रबंधित के साथ एक User
नियंत्रक की है।
Authenticate
कार्रवाई OpenIdRelyingParty.Response
जाँच करता है। यदि यह null
है, तो कार्रवाई RedirectToProvider
पर कॉल करती है। प्रदाता उसी क्रिया पर वापस आ जाता है, जहां मैं Respons.Status
जांचता हूं। यदि यह AuthenticationStatus.Authenticated
है तो मैं उस पृष्ठ पर वापस जाने के लिए FormsAuthentication.RedirectFromLoginPage
(openid.Response.ClaimedIdentifier, true)
का उपयोग करता हूं, जिस पर उपयोगकर्ता ने लॉगिन सेक्वेन्स शुरू किया था।
हालांकि, यदि स्थिति AuthenticationStatus.Failed
या 'प्रमाणीकरणस्टैटस। रद्द' है, तो मैं इस समस्या को हल करने के लिए उपयोगकर्ता चरणों की पेशकश कर सकता हूं। यदि उन्हें गलत टाइप किया गया है या इसके बजाय उपयोगकर्ता नाम/पासवर्ड के साथ लॉगिन करने के लिए मैं उन्हें अपने OpenID को सही करने के लिए ऑफ़र कर सकता हूं। (मैं एक ही identitites के लिए दोनों OpenID और उपयोगकर्ता नाम/पासवर्ड प्रमाणीकरण का समर्थन)
मेरा प्रवेश बॉक्स हर पृष्ठ पर है। यदि ओपनआईडी प्रदाता ने मुझे उस पृष्ठ पर वापस रीडायरेक्ट किया जिसने लॉगिन अनुरोध शुरू किया, तो संभावना है कि पृष्ठ विफलता को ठीक से संसाधित करने में सक्षम नहीं होगा।
स्रोत
2009-02-27 16:56:40
क्या यह AddCallbackArgument ** एस ** –
होना चाहिए, धन्यवाद। मैंने अपना जवाब सही कर दिया है। –
इतना आसान नहीं है: "कॉलबैक तर्क केवल तभी समर्थित होते हैं जब OpenIdRelyingParty पर एक IRelyingPartyAssociationStore प्रदान किया जाता है।" – Perry