diff options
Diffstat (limited to 'src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2')
-rw-r--r-- | src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2/Messages/AccessTokenRequestBase.cs | 19 | ||||
-rw-r--r-- | src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2/Messages/AccessTokenResourceOwnerPasswordCredentialsRequest.cs | 14 | ||||
-rw-r--r-- | src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2/Messages/EndUserAuthorizationImplicitRequest.cs | 19 | ||||
-rw-r--r-- | src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2/Messages/IAccessTokenRequest.cs | 6 | ||||
-rw-r--r-- | src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2/Messages/IAccessTokenRequestInternal.cs | 2 | ||||
-rw-r--r-- | src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2/Messages/IAccessTokenResult.cs (renamed from src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2/Messages/AccessTokenResult.cs) | 18 |
6 files changed, 59 insertions, 19 deletions
diff --git a/src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2/Messages/AccessTokenRequestBase.cs b/src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2/Messages/AccessTokenRequestBase.cs index e6bbc34..e405a85 100644 --- a/src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2/Messages/AccessTokenRequestBase.cs +++ b/src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2/Messages/AccessTokenRequestBase.cs @@ -45,7 +45,24 @@ namespace DotNetOpenAuth.OAuth2.Messages { /// <summary> /// Gets or sets the result of calling the authorization server host's access token creation method. /// </summary> - AccessTokenResult IAccessTokenRequestInternal.AccessTokenResult { get; set; } + IAccessTokenResult IAccessTokenRequestInternal.AccessTokenResult { get; set; } + + /// <summary> + /// Gets the username of the authorizing user, when applicable. + /// </summary> + /// <value> + /// A non-empty string; or <c>null</c> when no user has authorized this access token. + /// </value> + public virtual string UserName { + get { + IAccessTokenRequestInternal request = this; + if (request.AccessTokenResult != null && request.AccessTokenResult.AccessToken != null) { + return request.AccessTokenResult.AccessToken.User; + } + + return null; + } + } /// <summary> /// Gets the type of the grant. diff --git a/src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2/Messages/AccessTokenResourceOwnerPasswordCredentialsRequest.cs b/src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2/Messages/AccessTokenResourceOwnerPasswordCredentialsRequest.cs index a5d958a..a2cbe90 100644 --- a/src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2/Messages/AccessTokenResourceOwnerPasswordCredentialsRequest.cs +++ b/src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2/Messages/AccessTokenResourceOwnerPasswordCredentialsRequest.cs @@ -51,7 +51,7 @@ namespace DotNetOpenAuth.OAuth2.Messages { /// Gets the name on the account whose data on the resource server is accessible using this authorization. /// </summary> string IAuthorizationDescription.User { - get { return this.UserName; } + get { return this.RequestingUserName; } } /// <summary> @@ -64,6 +64,16 @@ namespace DotNetOpenAuth.OAuth2.Messages { #endregion /// <summary> + /// Gets the username of the authorizing user, when applicable. + /// </summary> + /// <value> + /// A non-empty string; or <c>null</c> when no user has authorized this access token. + /// </value> + public override string UserName { + get { return base.UserName ?? this.RequestingUserName; } + } + + /// <summary> /// Gets the type of the grant. /// </summary> /// <value>The type of the grant.</value> @@ -76,7 +86,7 @@ namespace DotNetOpenAuth.OAuth2.Messages { /// </summary> /// <value>The username on the user's account.</value> [MessagePart(Protocol.username, IsRequired = true)] - internal string UserName { get; set; } + internal string RequestingUserName { get; set; } /// <summary> /// Gets or sets the user's password. diff --git a/src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2/Messages/EndUserAuthorizationImplicitRequest.cs b/src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2/Messages/EndUserAuthorizationImplicitRequest.cs index 4b662cd..6f7ba7d 100644 --- a/src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2/Messages/EndUserAuthorizationImplicitRequest.cs +++ b/src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2/Messages/EndUserAuthorizationImplicitRequest.cs @@ -45,7 +45,24 @@ namespace DotNetOpenAuth.OAuth2.Messages { /// <summary> /// Gets or sets the result of calling the authorization server host's access token creation method. /// </summary> - AccessTokenResult IAccessTokenRequestInternal.AccessTokenResult { get; set; } + IAccessTokenResult IAccessTokenRequestInternal.AccessTokenResult { get; set; } + + /// <summary> + /// Gets the username of the authorizing user, when applicable. + /// </summary> + /// <value> + /// A non-empty string; or <c>null</c> when no user has authorized this access token. + /// </value> + string IAccessTokenRequest.UserName { + get { + IAccessTokenRequestInternal request = this; + if (request.AccessTokenResult != null && request.AccessTokenResult.AccessToken != null) { + return request.AccessTokenResult.AccessToken.User; + } + + return null; + } + } /// <summary> /// Gets a value indicating whether the client requesting the access token has authenticated itself. diff --git a/src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2/Messages/IAccessTokenRequest.cs b/src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2/Messages/IAccessTokenRequest.cs index 65378f9..81acb77 100644 --- a/src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2/Messages/IAccessTokenRequest.cs +++ b/src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2/Messages/IAccessTokenRequest.cs @@ -30,6 +30,12 @@ namespace DotNetOpenAuth.OAuth2.Messages { string ClientIdentifier { get; } /// <summary> + /// Gets the username of the authorizing user, when applicable. + /// </summary> + /// <value>A non-empty string; or <c>null</c> when no user has authorized this access token.</value> + string UserName { get; } + + /// <summary> /// Gets the scope of operations the client is allowed to invoke. /// </summary> HashSet<string> Scope { get; } diff --git a/src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2/Messages/IAccessTokenRequestInternal.cs b/src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2/Messages/IAccessTokenRequestInternal.cs index 44af074..b79d566 100644 --- a/src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2/Messages/IAccessTokenRequestInternal.cs +++ b/src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2/Messages/IAccessTokenRequestInternal.cs @@ -17,6 +17,6 @@ namespace DotNetOpenAuth.OAuth2.Messages { /// <summary> /// Gets or sets the result of calling the authorization server host's access token creation method. /// </summary> - AccessTokenResult AccessTokenResult { get; set; } + IAccessTokenResult AccessTokenResult { get; set; } } } diff --git a/src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2/Messages/AccessTokenResult.cs b/src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2/Messages/IAccessTokenResult.cs index 11e486b..1719984 100644 --- a/src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2/Messages/AccessTokenResult.cs +++ b/src/DotNetOpenAuth.OAuth2.ClientAuthorization/OAuth2/Messages/IAccessTokenResult.cs @@ -1,5 +1,5 @@ //----------------------------------------------------------------------- -// <copyright file="AccessTokenResult.cs" company="Andrew Arnott"> +// <copyright file="IAccessTokenResult.cs" company="Andrew Arnott"> // Copyright (c) Andrew Arnott. All rights reserved. // </copyright> //----------------------------------------------------------------------- @@ -14,17 +14,7 @@ namespace DotNetOpenAuth.OAuth2 { /// <summary> /// Describes the parameters to be fed into creating a response to an access token request. /// </summary> - public class AccessTokenResult { - /// <summary> - /// Initializes a new instance of the <see cref="AccessTokenResult"/> class. - /// </summary> - /// <param name="accessToken">The access token to include in this result.</param> - public AccessTokenResult(AccessToken accessToken) { - Requires.NotNull(accessToken, "accessToken"); - this.AllowRefreshToken = true; - this.AccessToken = accessToken; - } - + public interface IAccessTokenResult { /// <summary> /// Gets or sets a value indicating whether to provide the client with a refresh token, when applicable. /// </summary> @@ -33,11 +23,11 @@ namespace DotNetOpenAuth.OAuth2 { /// The refresh token will never be provided when this value is false. /// The refresh token <em>may</em> be provided when this value is true. /// </remarks> - public bool AllowRefreshToken { get; set; } + bool AllowRefreshToken { get; set; } /// <summary> /// Gets the access token. /// </summary> - public AccessToken AccessToken { get; private set; } + AccessToken AccessToken { get; } } } |