diff options
author | Andrew Arnott <andrewarnott@gmail.com> | 2008-04-18 09:33:31 -0700 |
---|---|---|
committer | Andrew Arnott <andrewarnott@gmail.com> | 2008-04-18 09:33:31 -0700 |
commit | 9926b3569f71db90a6d3800a79cf9f327672f138 (patch) | |
tree | c95d29e2eb3da6e96f46f352b4ff07901b43bc8f | |
parent | 70d085c6590ccf476db136cd8c9a4014f38765f4 (diff) | |
download | DotNetOpenAuth-9926b3569f71db90a6d3800a79cf9f327672f138.zip DotNetOpenAuth-9926b3569f71db90a6d3800a79cf9f327672f138.tar.gz DotNetOpenAuth-9926b3569f71db90a6d3800a79cf9f327672f138.tar.bz2 |
Breaking changes to extension-related methods.
Removed some old-style extension read/write methods.
12 files changed, 24 insertions, 79 deletions
diff --git a/samples/ProviderPortal/decide.aspx.cs b/samples/ProviderPortal/decide.aspx.cs index 198230a..7954dfc 100644 --- a/samples/ProviderPortal/decide.aspx.cs +++ b/samples/ProviderPortal/decide.aspx.cs @@ -23,7 +23,7 @@ public partial class decide : Page { // check that the logged in user is the same as the user requesting authentication to the consumer. If not, then log them out.
if (User.Identity.Name == Util.ExtractUserName(ProviderEndpoint.PendingAuthenticationRequest.LocalIdentifier)) {
// if simple registration fields were used, then prompt the user for them
- var requestedFields = SimpleRegistrationRequestFields.ReadFromRequest(ProviderEndpoint.PendingAuthenticationRequest);
+ var requestedFields = ProviderEndpoint.PendingAuthenticationRequest.GetExtension<SimpleRegistrationRequestFields>();
if (requestedFields != null) {
this.profileFields.Visible = true;
this.profileFields.SetRequiredFieldsFromRequest(requestedFields);
@@ -41,7 +41,7 @@ public partial class decide : Page { protected void Yes_Click(Object sender, EventArgs e) {
ProviderEndpoint.PendingAuthenticationRequest.IsAuthenticated = true;
- profileFields.OpenIdProfileFields.AddToResponse(ProviderEndpoint.PendingAuthenticationRequest);
+ ProviderEndpoint.PendingAuthenticationRequest.AddResponseExtension(profileFields.OpenIdProfileFields);
Debug.Assert(ProviderEndpoint.PendingAuthenticationRequest.IsResponseReady);
ProviderEndpoint.PendingAuthenticationRequest.Response.Send();
ProviderEndpoint.PendingAuthenticationRequest = null;
diff --git a/src/DotNetOpenId.TestWeb/ProviderEndpoint.aspx.cs b/src/DotNetOpenId.TestWeb/ProviderEndpoint.aspx.cs index 3824cc5..d090c6d 100644 --- a/src/DotNetOpenId.TestWeb/ProviderEndpoint.aspx.cs +++ b/src/DotNetOpenId.TestWeb/ProviderEndpoint.aspx.cs @@ -28,11 +28,11 @@ public partial class ProviderEndpoint : System.Web.UI.Page { }
void respondToExtensions(DotNetOpenId.Provider.IRequest request, TestSupport.Scenarios scenario) {
- var sregRequest = SimpleRegistrationRequestFields.ReadFromRequest(request);
+ var sregRequest = request.GetExtension<SimpleRegistrationRequestFields>();
var sregResponse = new SimpleRegistrationFieldValues();
- var aeFetchRequest = AttributeExchangeFetchRequest.ReadFromRequest(request);
+ var aeFetchRequest = request.GetExtension<AttributeExchangeFetchRequest>();
var aeFetchResponse = new AttributeExchangeFetchResponse();
- var aeStoreRequest = AttributeExchangeStoreRequest.ReadFromRequest(request);
+ var aeStoreRequest = request.GetExtension<AttributeExchangeStoreRequest>();
var aeStoreResponse = new AttributeExchangeStoreResponse();
switch (scenario) {
case TestSupport.Scenarios.ExtensionFullCooperation:
@@ -89,10 +89,10 @@ public partial class ProviderEndpoint : System.Web.UI.Page { storedAttributes[att.TypeUri] = att;
}
aeStoreResponse.Succeeded = true;
- }
- if (sregRequest != null) sregResponse.AddToResponse(request);
- if (aeFetchRequest != null) aeFetchResponse.AddToResponse(request);
- if (aeStoreRequest != null) aeStoreResponse.AddToResponse(request);
+ }
+ if (sregRequest != null) request.AddResponseExtension(sregResponse);
+ if (aeFetchRequest != null) request.AddResponseExtension(aeFetchResponse);
+ if (aeStoreRequest != null) request.AddResponseExtension(aeStoreResponse);
}
protected void ProviderEndpoint1_AuthenticationChallenge(object sender, DotNetOpenId.Provider.AuthenticationChallengeEventArgs e) {
diff --git a/src/DotNetOpenId/Extensions/AttributeExchangeFetchRequest.cs b/src/DotNetOpenId/Extensions/AttributeExchangeFetchRequest.cs index 700b995..0383864 100644 --- a/src/DotNetOpenId/Extensions/AttributeExchangeFetchRequest.cs +++ b/src/DotNetOpenId/Extensions/AttributeExchangeFetchRequest.cs @@ -41,20 +41,10 @@ namespace DotNetOpenId.Extensions { /// </summary>
public Uri UpdateUrl { get; set; }
- /// <summary>
- /// Reads an incoming authentication request (from a relying party)
- /// for Attribute Exchange properties and returns an instance of this
- /// struct with them.
- /// </summary>
- public static AttributeExchangeFetchRequest ReadFromRequest(Provider.IRequest request) {
- var obj = new AttributeExchangeFetchRequest();
- return ((IExtensionRequest)obj).ReadFromRequest(request) ? obj : null;
- }
-
#region IExtensionRequest Members
string IExtensionRequest.TypeUri { get { return Constants.ae.ns; } }
- public void AddToRequest(RelyingParty.IAuthenticationRequest authenticationRequest) {
+ void IExtensionRequest.AddToRequest(RelyingParty.IAuthenticationRequest authenticationRequest) {
var fields = new Dictionary<string, string> {
{ "mode", Mode },
};
diff --git a/src/DotNetOpenId/Extensions/AttributeExchangeFetchResponse.cs b/src/DotNetOpenId/Extensions/AttributeExchangeFetchResponse.cs index ebc803b..21bf271 100644 --- a/src/DotNetOpenId/Extensions/AttributeExchangeFetchResponse.cs +++ b/src/DotNetOpenId/Extensions/AttributeExchangeFetchResponse.cs @@ -43,19 +43,10 @@ namespace DotNetOpenId.Extensions { /// </summary>
public Uri UpdateUrl { get; set; }
- /// <summary>
- /// Reads a Provider's response for Attribute Exchange values and returns
- /// an instance of this struct with the values.
- /// </summary>
- public static AttributeExchangeFetchResponse ReadFromResponse(IAuthenticationResponse response) {
- var obj = new AttributeExchangeFetchResponse();
- return ((IExtensionResponse)obj).ReadFromResponse(response) ? obj : null;
- }
-
#region IExtensionResponse Members
string IExtensionResponse.TypeUri { get { return Constants.ae.ns; } }
- public void AddToResponse(Provider.IRequest authenticationRequest) {
+ void IExtensionResponse.AddToResponse(Provider.IRequest authenticationRequest) {
var fields = new Dictionary<string, string> {
{ "mode", Mode },
};
diff --git a/src/DotNetOpenId/Extensions/AttributeExchangeStoreRequest.cs b/src/DotNetOpenId/Extensions/AttributeExchangeStoreRequest.cs index ae33ee6..466a196 100644 --- a/src/DotNetOpenId/Extensions/AttributeExchangeStoreRequest.cs +++ b/src/DotNetOpenId/Extensions/AttributeExchangeStoreRequest.cs @@ -33,20 +33,10 @@ namespace DotNetOpenId.Extensions { return GetAttribute(typeUri) != null;
}
- /// <summary>
- /// Reads an incoming authentication request (from a relying party)
- /// for Attribute Exchange properties and returns an instance of this
- /// struct with them.
- /// </summary>
- public static AttributeExchangeStoreRequest ReadFromRequest(Provider.IRequest request) {
- var obj = new AttributeExchangeStoreRequest();
- return ((IExtensionRequest)obj).ReadFromRequest(request) ? obj : null;
- }
-
#region IExtensionRequest Members
string IExtensionRequest.TypeUri { get { return Constants.ae.ns; } }
- public void AddToRequest(RelyingParty.IAuthenticationRequest authenticationRequest) {
+ void IExtensionRequest.AddToRequest(RelyingParty.IAuthenticationRequest authenticationRequest) {
var fields = new Dictionary<string, string> {
{ "mode", Mode },
};
diff --git a/src/DotNetOpenId/Extensions/AttributeExchangeStoreResponse.cs b/src/DotNetOpenId/Extensions/AttributeExchangeStoreResponse.cs index 192cccd..9f5a227 100644 --- a/src/DotNetOpenId/Extensions/AttributeExchangeStoreResponse.cs +++ b/src/DotNetOpenId/Extensions/AttributeExchangeStoreResponse.cs @@ -22,19 +22,10 @@ namespace DotNetOpenId.Extensions { /// </summary>
public string FailureReason { get; set; }
- /// <summary>
- /// Reads a Provider's response for Attribute Exchange values and returns
- /// an instance of this struct with the values.
- /// </summary>
- public static AttributeExchangeStoreResponse ReadFromResponse(IAuthenticationResponse response) {
- var obj = new AttributeExchangeStoreResponse();
- return ((IExtensionResponse)obj).ReadFromResponse(response) ? obj : null;
- }
-
#region IExtensionResponse Members
string IExtensionResponse.TypeUri { get { return Constants.ae.ns; } }
- public void AddToResponse(Provider.IRequest authenticationRequest) {
+ void IExtensionResponse.AddToResponse(Provider.IRequest authenticationRequest) {
var fields = new Dictionary<string, string> {
{ "mode", Succeeded ? SuccessMode : FailureMode },
};
diff --git a/src/DotNetOpenId/Extensions/SimpleRegistrationFieldValues.cs b/src/DotNetOpenId/Extensions/SimpleRegistrationFieldValues.cs index b86c118..fab3d53 100644 --- a/src/DotNetOpenId/Extensions/SimpleRegistrationFieldValues.cs +++ b/src/DotNetOpenId/Extensions/SimpleRegistrationFieldValues.cs @@ -103,15 +103,6 @@ namespace DotNetOpenId.Extensions /// </summary>
public string TimeZone { get; set; }
- /// <summary>
- /// Reads a Provider's response for Simple Registration values and returns
- /// an instance of this struct with the values.
- /// </summary>
- public static SimpleRegistrationFieldValues ReadFromResponse(IAuthenticationResponse response) {
- var obj = new SimpleRegistrationFieldValues();
- return ((IExtensionResponse)obj).ReadFromResponse(response) ? obj : null;
- }
-
#region IExtensionResponse Members
string IExtensionResponse.TypeUri { get { return Constants.sreg.sreg_ns; } }
@@ -120,7 +111,7 @@ namespace DotNetOpenId.Extensions /// by an OpenID Provider.
/// </summary>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")]
- public void AddToResponse(Provider.IRequest authenticationRequest) {
+ void IExtensionResponse.AddToResponse(Provider.IRequest authenticationRequest) {
if (authenticationRequest == null) throw new ArgumentNullException("authenticationRequest");
Dictionary<string, string> fields = new Dictionary<string, string>();
if (BirthDate != null) {
diff --git a/src/DotNetOpenId/Extensions/SimpleRegistrationRequestFields.cs b/src/DotNetOpenId/Extensions/SimpleRegistrationRequestFields.cs index 46344b8..8f22388 100644 --- a/src/DotNetOpenId/Extensions/SimpleRegistrationRequestFields.cs +++ b/src/DotNetOpenId/Extensions/SimpleRegistrationRequestFields.cs @@ -125,14 +125,6 @@ namespace DotNetOpenId.Extensions { return fields.ToArray();
}
- /// <summary>
- /// Reads the sreg extension information on an authentication request to the provider
- /// and returns information on what profile fields the consumer is requesting/requiring.
- /// </summary>
- public static SimpleRegistrationRequestFields ReadFromRequest(IRequest request) {
- var fields = new SimpleRegistrationRequestFields();
- return ((IExtensionRequest)fields).ReadFromRequest(request) ? fields : null;
- }
#region IExtensionRequest Members
string IExtensionRequest.TypeUri { get { return Constants.sreg.sreg_ns; } }
@@ -165,7 +157,7 @@ namespace DotNetOpenId.Extensions { /// the Provider to include with a positive authentication assertion as an
/// extension to an authentication request.
/// </summary>
- public void AddToRequest(RelyingParty.IAuthenticationRequest request) {
+ void IExtensionRequest.AddToRequest(RelyingParty.IAuthenticationRequest request) {
var fields = new Dictionary<string, string>();
if (PolicyUrl != null)
fields.Add(Constants.sreg.policy_url, PolicyUrl.AbsoluteUri);
diff --git a/src/DotNetOpenId/Provider/IRequest.cs b/src/DotNetOpenId/Provider/IRequest.cs index d7f04bf..85a05fc 100644 --- a/src/DotNetOpenId/Provider/IRequest.cs +++ b/src/DotNetOpenId/Provider/IRequest.cs @@ -37,7 +37,7 @@ namespace DotNetOpenId.Provider { /// <summary>
/// Adds an extension to the response to send to the relying party.
/// </summary>
- void AddExtension(IExtensionResponse extension);
+ void AddResponseExtension(IExtensionResponse extension);
/// <summary>
/// Gets the extension arguments sent from the relying party.
/// </summary>
diff --git a/src/DotNetOpenId/Provider/Request.cs b/src/DotNetOpenId/Provider/Request.cs index 758b705..5b6738d 100644 --- a/src/DotNetOpenId/Provider/Request.cs +++ b/src/DotNetOpenId/Provider/Request.cs @@ -141,7 +141,7 @@ namespace DotNetOpenId.Provider return IncomingExtensions.GetExtensionArguments(extensionTypeUri);
}
- public void AddExtension(DotNetOpenId.Extensions.IExtensionResponse extension) {
+ public void AddResponseExtension(DotNetOpenId.Extensions.IExtensionResponse extension) {
extension.AddToResponse(this);
}
diff --git a/src/DotNetOpenId/RelyingParty/OpenIdMobileTextBox.cs b/src/DotNetOpenId/RelyingParty/OpenIdMobileTextBox.cs index 0d43404..ae932ee 100644 --- a/src/DotNetOpenId/RelyingParty/OpenIdMobileTextBox.cs +++ b/src/DotNetOpenId/RelyingParty/OpenIdMobileTextBox.cs @@ -372,7 +372,7 @@ namespace DotNetOpenId.RelyingParty void addProfileArgs(IAuthenticationRequest request)
{
- new SimpleRegistrationRequestFields() {
+ request.AddExtension(new SimpleRegistrationRequestFields() {
Nickname = RequestNickname,
Email = RequestEmail,
FullName = RequestFullName,
@@ -382,9 +382,9 @@ namespace DotNetOpenId.RelyingParty Country = RequestCountry,
Language = RequestLanguage,
TimeZone = RequestTimeZone,
- PolicyUrl = string.IsNullOrEmpty(PolicyUrl) ?
+ PolicyUrl = string.IsNullOrEmpty(PolicyUrl) ?
null : new Uri(Page.Request.Url, Page.ResolveUrl(PolicyUrl)),
- }.AddToRequest(request);
+ });
}
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", MessageId = "DotNetOpenId.Realm")]
diff --git a/src/DotNetOpenId/RelyingParty/OpenIdTextBox.cs b/src/DotNetOpenId/RelyingParty/OpenIdTextBox.cs index a55e231..4ff20d1 100644 --- a/src/DotNetOpenId/RelyingParty/OpenIdTextBox.cs +++ b/src/DotNetOpenId/RelyingParty/OpenIdTextBox.cs @@ -643,7 +643,7 @@ namespace DotNetOpenId.RelyingParty void addProfileArgs(IAuthenticationRequest request)
{
- new SimpleRegistrationRequestFields() {
+ request.AddExtension(new SimpleRegistrationRequestFields() {
Nickname = RequestNickname,
Email = RequestEmail,
FullName = RequestFullName,
@@ -653,9 +653,9 @@ namespace DotNetOpenId.RelyingParty Country = RequestCountry,
Language = RequestLanguage,
TimeZone = RequestTimeZone,
- PolicyUrl = string.IsNullOrEmpty(PolicyUrl) ?
+ PolicyUrl = string.IsNullOrEmpty(PolicyUrl) ?
null : new Uri(Page.Request.Url, Page.ResolveUrl(PolicyUrl)),
- }.AddToRequest(request);
+ });
}
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", MessageId = "DotNetOpenId.Realm")]
@@ -787,7 +787,7 @@ namespace DotNetOpenId.RelyingParty if (response == null) throw new ArgumentNullException("response");
Response = response;
ClaimedIdentifier = response.ClaimedIdentifier;
- ProfileFields = SimpleRegistrationFieldValues.ReadFromResponse(response);
+ ProfileFields = response.GetExtension<SimpleRegistrationFieldValues>();
}
/// <summary>
/// Cancels the OpenID authentication and/or login process.
|