Line data Source code
1 : #region Copyright
2 : // // -----------------------------------------------------------------------
3 : // // <copyright company="Chinchilla Software Limited">
4 : // // Copyright Chinchilla Software Limited. All rights reserved.
5 : // // </copyright>
6 : // // -----------------------------------------------------------------------
7 : #endregion
8 :
9 : using System;
10 : using System.ServiceModel;
11 :
12 : namespace Cqrs.Authentication
13 : {
14 : /// <summary>
15 : /// A factory for creating new authentication tokens of type <typeparamref name="TSingleSignOnToken"/>.
16 : /// </summary>
17 : /// <typeparam name="TSingleSignOnToken">The <see cref="Type"/> of <see cref="ISingleSignOnToken"/>.</typeparam>
18 : [ServiceContract(Namespace = "https://getcqrs.net/SingleSignOn/TokenFactory")]
19 : public interface ISingleSignOnTokenFactory<TSingleSignOnToken>
20 : where TSingleSignOnToken : ISingleSignOnToken, new()
21 : {
22 : /// <summary>
23 : /// Create a new <typeparamref name="TSingleSignOnToken"/>.
24 : /// </summary>
25 : /// <param name="timeoutInMinutes">The amount of time in minutes to set the <see cref="ISingleSignOnToken.TimeOfExpiry"/> to. This is from <see cref="DateTime.UtcNow"/></param>
26 : [OperationContract]
27 1 : TSingleSignOnToken CreateNew(int timeoutInMinutes = 360);
28 :
29 : /// <summary>
30 : /// Renew the value of <see cref="ISingleSignOnToken.TimeOfExpiry"/>.
31 : /// </summary>
32 : /// <param name="token">The <see cref="ISingleSignOnToken"/> to renew.</param>
33 : /// <param name="timeoutInMinutes">The amount of time in minutes to set the <see cref="ISingleSignOnToken.TimeOfExpiry"/> to. This is from <see cref="DateTime.UtcNow"/></param>
34 : [OperationContract]
35 1 : TSingleSignOnToken RenewTokenExpiry(TSingleSignOnToken token, int timeoutInMinutes = 360);
36 : }
37 : }
|