से विशेषताओं को प्राप्त नहीं किया जा सकता है, मैं यह पता लगाने की कोशिश कर रहा हूं कि खुली आईडी के माध्यम से सत्यापित करने के बाद उपयोगकर्ताओं की जानकारी कैसे प्राप्त करें। इससे कोई फर्क नहीं पड़ता अगर मैं एक ClaimsRequest या FetchRequest की आपूर्ति जब भी मैंDotNetOpenId प्रतिक्रिया
response.GetExtension<ClaimsResponse>
//Or
response.GetExtension<FetchResponse>
//Or
response.GetUntrustedExtension<ClaimsResponse>
// OR
response.GetUntrustedExtension<FetchResponse>
फोन मैं हमेशा एक अशक्त संदर्भ मिलता है। मैं इस तरह के सभी उदाहरणों की तरह ही जानकारी जोड़ रहा हूं:
request.AddExtension(new ClaimsRequest{ Email = DemandLevel.Require });
// Or
var fetch = new FetchRequest();
fetch.Attributes.AddRequired(WellKnownAttributes.Contact.Email);
request.AddExtension(fetch);
कोई विचार क्या मैं गलत कर रहा हूं?
अद्यतन
विन्यास जानकारी एंड्रयू ने सुझाव दिया जोड़ना मुझे वहां जिस तरह का हिस्सा मिला है। मुझे अंततः response.GetUntrustedExtension<ClaimsResponse>
के साथ दावा दावा प्राप्त हो रहा है हालांकि response.GetExtension<ClaimsResponse>
अभी भी शून्य लौटाता है। इसके अलावा दावों के रिस्पॉन्स में वास्तव में मेरे द्वारा अनुरोधित डेटा में से कोई भी शामिल नहीं है। यहाँ अनुरोध है:
var request = openId.CreateRequest(Request.Form["openid_identifier"]);
request.AddExtension(new ClaimsRequest
{
BirthDate = DemandLevel.Request,
Country = DemandLevel.Request,
Email = DemandLevel.Require,
FullName = DemandLevel.Request,
Gender = DemandLevel.Request,
Language = DemandLevel.Request,
Nickname = DemandLevel.Request,
PostalCode = DemandLevel.Request,
TimeZone = DemandLevel.Request
});
return request.RedirectingResponse.AsActionResult();
यहाँ मेरी विन्यास
<uri>
<idn enabled="All"/>
<iriParsing enabled="true"/>
</uri>
<dotNetOpenAuth>
<openid maxAuthenticationTime="0:05">
<relyingParty>
<security
requireSsl="false"
minimumRequiredOpenIdVersion="V10"
minimumHashBitLength="160"
maximumHashBitLength="256"
requireDirectedIdentity="false"
requireAssociation="false"
rejectUnsolicitedAssertions="false"
rejectDelegatingIdentifiers="false"
ignoreUnsignedExtensions="false"
privateSecretMaximumAge="07:00:00" />
<behaviors>
<add type="DotNetOpenAuth.OpenId.Behaviors.AXFetchAsSregTransform, DotNetOpenAuth" />
</behaviors>
</relyingParty>
</openid>
<messaging>
<untrustedWebRequest>
<whitelistHosts>
<!-- since this is a sample, and will often be used with localhost -->
<add name="localhost" />
</whitelistHosts>
</untrustedWebRequest>
</messaging>
मैं v3.2.0.9177
क्या आप शामिल कर सकते हैं कि आप किस ओपी के खिलाफ परीक्षण कर रहे हैं? –
व्यवहार कॉन्फ़िगरेशन दावा करता है कि किसी भी मूल्य के बिना, हमेशा के रूप में दावा करने के लिए दावा करता है। ऐसा लगता है कि आपका कोड सही है, और चूंकि मायोपेनिड दोनों सर्ग और एक्स का समर्थन करता है, मुझे आश्चर्य है कि यह आपके लिए काम नहीं कर रहा है। मैं देखूंगा कि मैं कुछ और जांच कर सकता हूं या नहीं। –
मैंने myopenid.com के खिलाफ विशेष रूप से मेरे उत्तर में परीक्षण के बारे में एक टिप्पणी जोड़ा क्योंकि मुझे लगता है कि आप इसके खिलाफ क्या चल रहे हैं। यह भी एक टिप है, जो सुरक्षा टैग जिसे आपने अपनी web.config फ़ाइल में जोड़ा है, यदि आप विकी पेज में थे, तो यह वर्बैटिम छोड़ दिया गया है। वे सभी डिफ़ॉल्ट मान हैं।यहां देखे जाने वाले एकमात्र महत्वपूर्ण परिवर्तन यह है कि आपने 'लोकलहोस्ट' को श्वेतसूची वाले होस्ट और जिस व्यवहार के बारे में बात की थी, के रूप में जोड़ा। –