Show / Hide Table of Contents

Class DeviceOAuth

Implementation of device based OAuth2 flow.

Inheritance
Object
DeviceOAuth
Implements
IDeviceOAuth2
IDeviceOAuth2Stepwise
IDeviceOAuthInfo
Inherited Members
Object.Equals(Object)
Object.Equals(Object, Object)
Object.GetHashCode()
Object.GetType()
Object.MemberwiseClone()
Object.ReferenceEquals(Object, Object)
Object.ToString()
Namespace: DeviceOAuth2
Assembly: DeviceOAuth2.dll
Syntax
public sealed class DeviceOAuth : IDeviceOAuth2, IDeviceOAuth2Stepwise, IDeviceOAuthInfo

Constructors

| Improve this Doc View Source

DeviceOAuth(EndPointInfo, String, String)

ctor

Declaration
public DeviceOAuth(EndPointInfo authEndPoint, string scope, string clientId)
Parameters
Type Name Description
EndPointInfo authEndPoint
String scope
String clientId
Exceptions
Type Condition
InvalidOperationException

scope or clientId are null or empty

ArgumentNullException

authEndPoint is null

| Improve this Doc View Source

DeviceOAuth(EndPointInfo, String, String, String)

ctor

Declaration
public DeviceOAuth(EndPointInfo authEndPoint, string scope, string clientId, string clientSecret)
Parameters
Type Name Description
EndPointInfo authEndPoint
String scope
String clientId
String clientSecret

Allowed to be null or empty

Exceptions
Type Condition
InvalidOperationException

scope or clientId are null or empty

ArgumentNullException

authEndPoint is null

Properties

| Improve this Doc View Source

ClientId

The ClientId of the app requesting authorization.

Declaration
public string ClientId { get; }
Property Value
Type Description
String
| Improve this Doc View Source

EndPoint

The endpoint of the OAuth2 interface

Declaration
public EndPointInfo EndPoint { get; }
Property Value
Type Description
EndPointInfo
| Improve this Doc View Source

Scope

The scope(s) being authorized.

Declaration
public string Scope { get; }
Property Value
Type Description
String

Methods

| Improve this Doc View Source

Authorize(TokenInfo)

Starts the authorization flow. If a non-null auth Token is passed, and it has a refresh token, the access token will be generated by refreshing. Otherwise if token is null or has no RefreshToken, a new authorization flow will be started.

Declaration
public Task<TokenInfo> Authorize(TokenInfo token)
Parameters
Type Name Description
TokenInfo token

An existing auth token that can be checked for needing to be refreshed. Pass null if the app has never been authorized.

Returns
Type Description
Task<TokenInfo>

An auth token. If the token parameter is still valid it will be returned

Exceptions
Type Condition
UnauthorizedAccessException

Thrown when the user denies access

TimeoutException

Thrown when the user does not respond in the time alotted by the service

DynamicRestProxy.PortableHttpClient.DynamicRestClientResponseException

When there is an http failure

| Improve this Doc View Source

Authorize(TokenInfo, CancellationToken)

Starts the authorization flow. If a non-null auth Token is passed, and it has a refresh token, the access token will be generated by refreshing. Otherwise if token is null or has no RefreshToken, a new authorization flow will be started.

Declaration
public Task<TokenInfo> Authorize(TokenInfo token, CancellationToken cancelToken)
Parameters
Type Name Description
TokenInfo token

An existing auth token that can be checked for needing to be refreshed. Pass null if the app has never been authorized.

CancellationToken cancelToken

Cancellation token

Returns
Type Description
Task<TokenInfo>

An auth token. If the token parameter is still valid it will be returned

Exceptions
Type Condition
UnauthorizedAccessException

Thrown when the user denies access

TimeoutException

Thrown when the user does not respond in the time alotted by the service

DynamicRestProxy.PortableHttpClient.DynamicRestClientResponseException

When there is an http failure

| Improve this Doc View Source

CheckToken(TokenInfo)

Checks the validity of an auth token against the auth endpoint. It does this by making a get request to the token's ProfileUri. This is useful for ensuring that the user hasn't revoked authorization for a stored token and that it hasn't expired.

Declaration
public Task<bool> CheckToken(TokenInfo token)
Parameters
Type Name Description
TokenInfo token

The auth token to check

Returns
Type Description
Task<Boolean>

True if the auth token is stil valid

| Improve this Doc View Source

CheckToken(TokenInfo, CancellationToken)

Checks the validity of a token against the auth endpoint. It does this by making a get request to the token's ProfileUri. This is useful for ensuring that the user hasn't revoked authorization for a stored token and that it hasn't expired.

Declaration
public Task<bool> CheckToken(TokenInfo token, CancellationToken cancelToken)
Parameters
Type Name Description
TokenInfo token

The auth token to check

CancellationToken cancelToken

A cancellation token

Returns
Type Description
Task<Boolean>

True if the auth token is stil valid

| Improve this Doc View Source

GetProfile(TokenInfo)

Returns the user's endpoint profile using ProfileUri.

Declaration
public Task<dynamic> GetProfile(TokenInfo token)
Parameters
Type Name Description
TokenInfo token

The auth token

Returns
Type Description
Task<Object>

User's profile

Exceptions
Type Condition
DynamicRestProxy.PortableHttpClient.DynamicRestClientResponseException

When there is an http failure

| Improve this Doc View Source

GetProfile(TokenInfo, CancellationToken)

Returns the user's endpoint profile using ProfileUri.

Declaration
public Task<dynamic> GetProfile(TokenInfo token, CancellationToken cancelToken)
Parameters
Type Name Description
TokenInfo token

The auth token

CancellationToken cancelToken

A cancellation token

Returns
Type Description
Task<Object>

User's profile

Exceptions
Type Condition
DynamicRestProxy.PortableHttpClient.DynamicRestClientResponseException

When there is an http failure

Events

| Improve this Doc View Source

PromptUser

Event raised when the auth confirmation url and code are known. Display these to the user and tell them to enter the code at the referenced web page.

Declaration
public event EventHandler<AuthInfo> PromptUser
Event Type
Type Description
EventHandler<AuthInfo>
| Improve this Doc View Source

WaitingForConfirmation

Status event raised each time confirmation is checked for. The int argument is number of seconds remaining before the auth flow times out.

Declaration
public event EventHandler<int> WaitingForConfirmation
Event Type
Type Description
EventHandler<Int32>

Explicit Interface Implementations

| Improve this Doc View Source

IDeviceOAuth2Stepwise.RefreshAccessToken(TokenInfo)

Refreshes the access token

Declaration
Task<TokenInfo> IDeviceOAuth2Stepwise.RefreshAccessToken(TokenInfo token)
Parameters
Type Name Description
TokenInfo token

The token to refresh

Returns
Type Description
Task<TokenInfo>

A refreshed auth token

Exceptions
Type Condition
ArgumentNullException

TokenInfo is null

InvalidOperationException

The TokenInfo is not refreshable

DynamicRestProxy.PortableHttpClient.DynamicRestClientResponseException

When there is an http failure

| Improve this Doc View Source

IDeviceOAuth2Stepwise.RefreshAccessToken(TokenInfo, CancellationToken)

Refreshes the access token

Declaration
Task<TokenInfo> IDeviceOAuth2Stepwise.RefreshAccessToken(TokenInfo token, CancellationToken cancelToken)
Parameters
Type Name Description
TokenInfo token

The token to refresh

CancellationToken cancelToken

A cancellation token

Returns
Type Description
Task<TokenInfo>

A refreshed auth token

Exceptions
Type Condition
ArgumentNullException

TokenInfo is null

InvalidOperationException

The TokenInfo is not refreshable

DynamicRestProxy.PortableHttpClient.DynamicRestClientResponseException

When there is an http failure

| Improve this Doc View Source

IDeviceOAuth2Stepwise.StartAuthorization()

Starts a new authorization flow

Declaration
Task<AuthInfo> IDeviceOAuth2Stepwise.StartAuthorization()
Returns
Type Description
Task<AuthInfo>

Auth information to be displayed to the user

Exceptions
Type Condition
DynamicRestProxy.PortableHttpClient.DynamicRestClientResponseException

When there is an http failure

| Improve this Doc View Source

IDeviceOAuth2Stepwise.StartAuthorization(CancellationToken)

Starts a new authorization flow

Declaration
Task<AuthInfo> IDeviceOAuth2Stepwise.StartAuthorization(CancellationToken cancelToken)
Parameters
Type Name Description
CancellationToken cancelToken
Returns
Type Description
Task<AuthInfo>

Auth information to be displayed to the user

Exceptions
Type Condition
DynamicRestProxy.PortableHttpClient.DynamicRestClientResponseException

When there is an http failure

| Improve this Doc View Source

IDeviceOAuth2Stepwise.WaitForUserConsent(AuthInfo)

Polls the service endpoint until the user gives authorization or the Expiration passes

Declaration
Task<TokenInfo> IDeviceOAuth2Stepwise.WaitForUserConsent(AuthInfo info)
Parameters
Type Name Description
AuthInfo info

The end point to authorize

Returns
Type Description
Task<TokenInfo>

An auth token

Exceptions
Type Condition
UnauthorizedAccessException

Thrown when the user denies access

TimeoutException

Thrown when the user does not respond in the time alotted by the service

DynamicRestProxy.PortableHttpClient.DynamicRestClientResponseException

When there is an http failure

| Improve this Doc View Source

IDeviceOAuth2Stepwise.WaitForUserConsent(AuthInfo, CancellationToken)

Polls the service endpoint until the user gives authorization or the Expiration passes

Declaration
Task<TokenInfo> IDeviceOAuth2Stepwise.WaitForUserConsent(AuthInfo info, CancellationToken cancelToken)
Parameters
Type Name Description
AuthInfo info

The end point to authorize

CancellationToken cancelToken

A cancellation token

Returns
Type Description
Task<TokenInfo>

An auth token

Exceptions
Type Condition
UnauthorizedAccessException

Thrown when the user denies access

TimeoutException

Thrown when the user does not respond in the time alotted by the service

DynamicRestProxy.PortableHttpClient.DynamicRestClientResponseException

When there is an http failure

Implements

IDeviceOAuth2
IDeviceOAuth2Stepwise
IDeviceOAuthInfo
  • Improve this Doc
  • View Source
Back to top Copyright © 2015-2017 Microsoft
Generated by DocFX