summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/DotNetOpenAuth/OpenId/RelyingParty/RelyingPartyUtilities.cs9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/DotNetOpenAuth/OpenId/RelyingParty/RelyingPartyUtilities.cs b/src/DotNetOpenAuth/OpenId/RelyingParty/RelyingPartyUtilities.cs
index 6d0b191..8c3438a 100644
--- a/src/DotNetOpenAuth/OpenId/RelyingParty/RelyingPartyUtilities.cs
+++ b/src/DotNetOpenAuth/OpenId/RelyingParty/RelyingPartyUtilities.cs
@@ -51,7 +51,7 @@ namespace DotNetOpenAuth.OpenId.RelyingParty {
/// string setup; // URL to initiate a setup request.
/// }
/// </remarks>
- public static JsonResult AjaxDiscover(Identifier identifier, Realm realm, Uri returnTo) {
+ public static JsonResult AjaxDiscover(Identifier identifier, Realm realm, Uri returnTo, Action<IAuthenticationRequest> attachExtensions) {
Contract.Requires<ArgumentNullException>(identifier != null);
Contract.Requires<ArgumentNullException>(realm != null);
Contract.Requires<ArgumentNullException>(returnTo != null);
@@ -60,8 +60,13 @@ namespace DotNetOpenAuth.OpenId.RelyingParty {
selector.RealmUrl = realm;
selector.ReturnToUrl = returnTo.AbsoluteUri;
selector.ID = "MVC";
- var requests = selector.CreateRequests(identifier);
+ var requests = selector.CreateRequests(identifier).CacheGeneratedResults();
if (requests.Any()) {
+ if (attachExtensions != null) {
+ foreach (var request in requests) {
+ attachExtensions(request);
+ }
+ }
return new JsonResult {
Data = new {
claimedIdentifier = requests.First().ClaimedIdentifier,