#273 - Use POCOs for auth context objects.
This commit is contained in:
parent
a174bb299e
commit
cc1a24b949
|
|
@ -0,0 +1,40 @@
|
||||||
|
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved.
|
||||||
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Security.Claims;
|
||||||
|
using Microsoft.Framework.Internal;
|
||||||
|
|
||||||
|
namespace Microsoft.AspNet.Http.Authentication
|
||||||
|
{
|
||||||
|
public class AuthenticateContext
|
||||||
|
{
|
||||||
|
public AuthenticateContext([NotNull] string authenticationScheme)
|
||||||
|
{
|
||||||
|
AuthenticationScheme = authenticationScheme;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string AuthenticationScheme { get; }
|
||||||
|
|
||||||
|
public bool Accepted { get; private set; }
|
||||||
|
|
||||||
|
public ClaimsPrincipal Principal { get; private set; }
|
||||||
|
|
||||||
|
public IDictionary<string, string> Properties { get; private set; }
|
||||||
|
|
||||||
|
public IDictionary<string, object> Description { get; private set; }
|
||||||
|
|
||||||
|
public virtual void Authenticated(ClaimsPrincipal principal, IDictionary<string, string> properties, IDictionary<string, object> description)
|
||||||
|
{
|
||||||
|
Accepted = true;
|
||||||
|
Principal = principal;
|
||||||
|
Properties = properties;
|
||||||
|
Description = description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void NotAuthenticated()
|
||||||
|
{
|
||||||
|
Accepted = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -3,35 +3,26 @@
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Microsoft.Framework.Internal;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Http.Authentication
|
namespace Microsoft.AspNet.Http.Authentication
|
||||||
{
|
{
|
||||||
public class ChallengeContext : IChallengeContext
|
public class ChallengeContext
|
||||||
{
|
{
|
||||||
private bool _accepted;
|
|
||||||
|
|
||||||
public ChallengeContext(string authenticationScheme, IDictionary<string, string> properties)
|
public ChallengeContext(string authenticationScheme, IDictionary<string, string> properties)
|
||||||
{
|
{
|
||||||
AuthenticationScheme = authenticationScheme;
|
AuthenticationScheme = authenticationScheme;
|
||||||
Properties = properties ?? new Dictionary<string, string>(StringComparer.Ordinal);
|
Properties = properties ?? new Dictionary<string, string>(StringComparer.Ordinal);
|
||||||
|
|
||||||
// The default Challenge with no scheme is always accepted
|
|
||||||
_accepted = string.IsNullOrEmpty(authenticationScheme);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public string AuthenticationScheme { get; private set; }
|
public string AuthenticationScheme { get; }
|
||||||
|
|
||||||
public IDictionary<string, string> Properties { get; private set; }
|
public IDictionary<string, string> Properties { get; }
|
||||||
|
|
||||||
public bool Accepted
|
public bool Accepted { get; private set; }
|
||||||
{
|
|
||||||
get { return _accepted; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Accept()
|
public void Accept()
|
||||||
{
|
{
|
||||||
_accepted = true;
|
Accepted = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -5,23 +5,23 @@ using System.Collections.Generic;
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Http.Authentication
|
namespace Microsoft.AspNet.Http.Authentication
|
||||||
{
|
{
|
||||||
public class DescribeSchemesContext : IDescribeSchemesContext
|
public class DescribeSchemesContext
|
||||||
{
|
{
|
||||||
private List<AuthenticationDescription> _results;
|
private List<IDictionary<string, object>> _results;
|
||||||
|
|
||||||
public DescribeSchemesContext()
|
public DescribeSchemesContext()
|
||||||
{
|
{
|
||||||
_results = new List<AuthenticationDescription>();
|
_results = new List<IDictionary<string, object>>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<AuthenticationDescription> Results
|
public IEnumerable<IDictionary<string, object>> Results
|
||||||
{
|
{
|
||||||
get { return _results; }
|
get { return _results; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Accept(IDictionary<string, object> description)
|
public void Accept(IDictionary<string, object> description)
|
||||||
{
|
{
|
||||||
_results.Add(new AuthenticationDescription(description));
|
_results.Add(description);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved.
|
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
||||||
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Security.Claims;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Http.Authentication
|
|
||||||
{
|
|
||||||
public interface IAuthenticateContext
|
|
||||||
{
|
|
||||||
string AuthenticationScheme { get; }
|
|
||||||
|
|
||||||
void Authenticated(ClaimsPrincipal principal, IDictionary<string, string> properties, IDictionary<string, object> description);
|
|
||||||
|
|
||||||
void NotAuthenticated();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -7,13 +7,16 @@ namespace Microsoft.AspNet.Http.Authentication
|
||||||
{
|
{
|
||||||
public interface IAuthenticationHandler
|
public interface IAuthenticationHandler
|
||||||
{
|
{
|
||||||
void GetDescriptions(IDescribeSchemesContext context);
|
void GetDescriptions(DescribeSchemesContext context);
|
||||||
|
|
||||||
void Authenticate(IAuthenticateContext context);
|
void Authenticate(AuthenticateContext context);
|
||||||
Task AuthenticateAsync(IAuthenticateContext context);
|
|
||||||
|
|
||||||
void Challenge(IChallengeContext context);
|
Task AuthenticateAsync(AuthenticateContext context);
|
||||||
void SignIn(ISignInContext context);
|
|
||||||
void SignOut(ISignOutContext context);
|
void Challenge(ChallengeContext context);
|
||||||
|
|
||||||
|
void SignIn(SignInContext context);
|
||||||
|
|
||||||
|
void SignOut(SignOutContext context);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved.
|
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
||||||
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Http.Authentication
|
|
||||||
{
|
|
||||||
public interface IChallengeContext
|
|
||||||
{
|
|
||||||
string AuthenticationScheme { get; }
|
|
||||||
IDictionary<string, string> Properties { get; }
|
|
||||||
|
|
||||||
void Accept();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved.
|
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
||||||
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Http.Authentication
|
|
||||||
{
|
|
||||||
public interface IDescribeSchemesContext
|
|
||||||
{
|
|
||||||
void Accept(IDictionary<string,object> description);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved.
|
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
||||||
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Security.Claims;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Http.Authentication
|
|
||||||
{
|
|
||||||
public interface ISignInContext
|
|
||||||
{
|
|
||||||
//IEnumerable<ClaimsPrincipal> Principals { get; }
|
|
||||||
ClaimsPrincipal Principal { get; }
|
|
||||||
IDictionary<string, string> Properties { get; }
|
|
||||||
string AuthenticationScheme { get; }
|
|
||||||
|
|
||||||
void Accept(IDictionary<string, object> description);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved.
|
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
||||||
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Http.Authentication
|
|
||||||
{
|
|
||||||
public interface ISignOutContext
|
|
||||||
{
|
|
||||||
string AuthenticationScheme { get; }
|
|
||||||
|
|
||||||
IDictionary<string, string> Properties { get; }
|
|
||||||
|
|
||||||
void Accept();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -8,31 +8,26 @@ using Microsoft.Framework.Internal;
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Http.Authentication
|
namespace Microsoft.AspNet.Http.Authentication
|
||||||
{
|
{
|
||||||
public class SignInContext : ISignInContext
|
public class SignInContext
|
||||||
{
|
{
|
||||||
private bool _accepted;
|
public SignInContext([NotNull] string authenticationScheme, [NotNull] ClaimsPrincipal principal, IDictionary<string, string> properties)
|
||||||
|
|
||||||
public SignInContext([NotNull] string authenticationScheme, [NotNull] ClaimsPrincipal principal, IDictionary<string, string> dictionary)
|
|
||||||
{
|
{
|
||||||
AuthenticationScheme = authenticationScheme;
|
AuthenticationScheme = authenticationScheme;
|
||||||
Principal = principal;
|
Principal = principal;
|
||||||
Properties = dictionary ?? new Dictionary<string, string>(StringComparer.Ordinal);
|
Properties = properties ?? new Dictionary<string, string>(StringComparer.Ordinal);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string AuthenticationScheme { get; }
|
||||||
|
|
||||||
public ClaimsPrincipal Principal { get; }
|
public ClaimsPrincipal Principal { get; }
|
||||||
|
|
||||||
public IDictionary<string, string> Properties { get; }
|
public IDictionary<string, string> Properties { get; }
|
||||||
|
|
||||||
public string AuthenticationScheme { get; }
|
public bool Accepted { get; private set; }
|
||||||
|
|
||||||
public bool Accepted
|
public void Accept()
|
||||||
{
|
{
|
||||||
get { return _accepted; }
|
Accepted = true;
|
||||||
}
|
|
||||||
|
|
||||||
public void Accept(IDictionary<string, object> description)
|
|
||||||
{
|
|
||||||
_accepted = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -7,10 +7,8 @@ using Microsoft.Framework.Internal;
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Http.Authentication
|
namespace Microsoft.AspNet.Http.Authentication
|
||||||
{
|
{
|
||||||
public class SignOutContext : ISignOutContext
|
public class SignOutContext
|
||||||
{
|
{
|
||||||
private bool _accepted;
|
|
||||||
|
|
||||||
public SignOutContext([NotNull] string authenticationScheme, IDictionary<string, string> properties)
|
public SignOutContext([NotNull] string authenticationScheme, IDictionary<string, string> properties)
|
||||||
{
|
{
|
||||||
AuthenticationScheme = authenticationScheme;
|
AuthenticationScheme = authenticationScheme;
|
||||||
|
|
@ -21,14 +19,11 @@ namespace Microsoft.AspNet.Http.Authentication
|
||||||
|
|
||||||
public IDictionary<string, string> Properties { get; }
|
public IDictionary<string, string> Properties { get; }
|
||||||
|
|
||||||
public bool Accepted
|
public bool Accepted { get; private set; }
|
||||||
{
|
|
||||||
get { return _accepted; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Accept()
|
public void Accept()
|
||||||
{
|
{
|
||||||
_accepted = true;
|
Accepted = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,16 +1,21 @@
|
||||||
{
|
{
|
||||||
"version": "1.0.0-*",
|
"version": "1.0.0-*",
|
||||||
"description": "ASP.NET 5 HTTP feature interface definitions.",
|
"description": "ASP.NET 5 HTTP feature interface definitions.",
|
||||||
"frameworks": {
|
"dependencies": {
|
||||||
"dnx451": {},
|
"Microsoft.Framework.NotNullAttribute.Internal": { "type": "build", "version": "1.0.0-*" }
|
||||||
"dnxcore50": {
|
},
|
||||||
"dependencies": {
|
"frameworks": {
|
||||||
"System.Net.Primitives": "4.0.10-beta-*",
|
"dnx451": { },
|
||||||
"System.Net.WebSockets" : "4.0.0-beta-*",
|
"dnxcore50": {
|
||||||
"System.Security.Claims": "4.0.0-beta-*",
|
"dependencies": {
|
||||||
"System.Security.Cryptography.X509Certificates": "4.0.0-beta-*",
|
"System.Collections": "4.0.10-beta-*",
|
||||||
"System.Security.Principal": "4.0.0-beta-*"
|
"System.Net.Primitives": "4.0.10-beta-*",
|
||||||
}
|
"System.Net.WebSockets": "4.0.0-beta-*",
|
||||||
|
"System.Runtime.Extensions": "4.0.10-beta-*",
|
||||||
|
"System.Security.Claims": "4.0.0-beta-*",
|
||||||
|
"System.Security.Cryptography.X509Certificates": "4.0.0-beta-*",
|
||||||
|
"System.Security.Principal": "4.0.0-beta-*"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,41 +0,0 @@
|
||||||
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved.
|
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
||||||
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Security.Claims;
|
|
||||||
using Microsoft.Framework.Internal;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Http.Authentication
|
|
||||||
{
|
|
||||||
public class AuthenticateContext : IAuthenticateContext
|
|
||||||
{
|
|
||||||
private AuthenticationResult _result;
|
|
||||||
private bool _accepted;
|
|
||||||
|
|
||||||
public AuthenticateContext([NotNull] string authenticationScheme)
|
|
||||||
{
|
|
||||||
AuthenticationScheme = authenticationScheme;
|
|
||||||
}
|
|
||||||
|
|
||||||
public string AuthenticationScheme { get; private set; }
|
|
||||||
|
|
||||||
public AuthenticationResult Result { get; set; }
|
|
||||||
|
|
||||||
public bool Accepted
|
|
||||||
{
|
|
||||||
get { return _accepted; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Authenticated(ClaimsPrincipal principal, IDictionary<string, string> properties, IDictionary<string, object> description)
|
|
||||||
{
|
|
||||||
var descrip = new AuthenticationDescription(description);
|
|
||||||
_accepted = true;
|
|
||||||
Result = new AuthenticationResult(principal, new AuthenticationProperties(properties), descrip);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void NotAuthenticated()
|
|
||||||
{
|
|
||||||
_accepted = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
using System.Security.Claims;
|
using System.Security.Claims;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNet.FeatureModel;
|
using Microsoft.AspNet.FeatureModel;
|
||||||
|
|
@ -42,7 +43,7 @@ namespace Microsoft.AspNet.Http.Authentication
|
||||||
|
|
||||||
var describeContext = new DescribeSchemesContext();
|
var describeContext = new DescribeSchemesContext();
|
||||||
handler.GetDescriptions(describeContext);
|
handler.GetDescriptions(describeContext);
|
||||||
return describeContext.Results;
|
return describeContext.Results.Select(description => new AuthenticationDescription(description));
|
||||||
}
|
}
|
||||||
|
|
||||||
public override AuthenticationResult Authenticate([NotNull] string authenticationScheme)
|
public override AuthenticationResult Authenticate([NotNull] string authenticationScheme)
|
||||||
|
|
@ -57,10 +58,12 @@ namespace Microsoft.AspNet.Http.Authentication
|
||||||
|
|
||||||
if (!authenticateContext.Accepted)
|
if (!authenticateContext.Accepted)
|
||||||
{
|
{
|
||||||
throw new InvalidOperationException("The following authentication scheme was not accepted: " + authenticationScheme);
|
throw new InvalidOperationException($"The following authentication scheme was not accepted: {authenticationScheme}");
|
||||||
}
|
}
|
||||||
|
|
||||||
return authenticateContext.Result;
|
return new AuthenticationResult(authenticateContext.Principal,
|
||||||
|
new AuthenticationProperties(authenticateContext.Properties),
|
||||||
|
new AuthenticationDescription(authenticateContext.Description));
|
||||||
}
|
}
|
||||||
|
|
||||||
public override async Task<AuthenticationResult> AuthenticateAsync([NotNull] string authenticationScheme)
|
public override async Task<AuthenticationResult> AuthenticateAsync([NotNull] string authenticationScheme)
|
||||||
|
|
@ -76,10 +79,12 @@ namespace Microsoft.AspNet.Http.Authentication
|
||||||
// Verify all types ack'd
|
// Verify all types ack'd
|
||||||
if (!authenticateContext.Accepted)
|
if (!authenticateContext.Accepted)
|
||||||
{
|
{
|
||||||
throw new InvalidOperationException("The following authentication scheme was not accepted: " + authenticationScheme);
|
throw new InvalidOperationException($"The following authentication scheme was not accepted: {authenticationScheme}");
|
||||||
}
|
}
|
||||||
|
|
||||||
return authenticateContext.Result;
|
return new AuthenticationResult(authenticateContext.Principal,
|
||||||
|
new AuthenticationProperties(authenticateContext.Properties),
|
||||||
|
new AuthenticationDescription(authenticateContext.Description));
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Challenge(AuthenticationProperties properties, string authenticationScheme)
|
public override void Challenge(AuthenticationProperties properties, string authenticationScheme)
|
||||||
|
|
@ -87,23 +92,24 @@ namespace Microsoft.AspNet.Http.Authentication
|
||||||
HttpResponseFeature.StatusCode = 401;
|
HttpResponseFeature.StatusCode = 401;
|
||||||
var handler = HttpAuthenticationFeature.Handler;
|
var handler = HttpAuthenticationFeature.Handler;
|
||||||
|
|
||||||
var challengeContext = new ChallengeContext(authenticationScheme, properties == null ? null : properties.Items);
|
var challengeContext = new ChallengeContext(authenticationScheme, properties?.Items);
|
||||||
if (handler != null)
|
if (handler != null)
|
||||||
{
|
{
|
||||||
handler.Challenge(challengeContext);
|
handler.Challenge(challengeContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!challengeContext.Accepted)
|
// The default Challenge with no scheme is always accepted
|
||||||
|
if (!challengeContext.Accepted && !string.IsNullOrEmpty(authenticationScheme))
|
||||||
{
|
{
|
||||||
throw new InvalidOperationException("The following authentication type was not accepted: " + authenticationScheme);
|
throw new InvalidOperationException($"The following authentication scheme was not accepted: {authenticationScheme}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void SignIn(string authenticationScheme, [NotNull] ClaimsPrincipal principal, AuthenticationProperties properties)
|
public override void SignIn([NotNull] string authenticationScheme, [NotNull] ClaimsPrincipal principal, AuthenticationProperties properties)
|
||||||
{
|
{
|
||||||
var handler = HttpAuthenticationFeature.Handler;
|
var handler = HttpAuthenticationFeature.Handler;
|
||||||
|
|
||||||
var signInContext = new SignInContext(authenticationScheme, principal, properties == null ? null : properties.Items);
|
var signInContext = new SignInContext(authenticationScheme, principal, properties?.Items);
|
||||||
if (handler != null)
|
if (handler != null)
|
||||||
{
|
{
|
||||||
handler.SignIn(signInContext);
|
handler.SignIn(signInContext);
|
||||||
|
|
@ -112,7 +118,7 @@ namespace Microsoft.AspNet.Http.Authentication
|
||||||
// Verify all types ack'd
|
// Verify all types ack'd
|
||||||
if (!signInContext.Accepted)
|
if (!signInContext.Accepted)
|
||||||
{
|
{
|
||||||
throw new InvalidOperationException("The following authentication scheme was not accepted: " + authenticationScheme);
|
throw new InvalidOperationException($"The following authentication scheme was not accepted: {authenticationScheme}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -129,7 +135,7 @@ namespace Microsoft.AspNet.Http.Authentication
|
||||||
// Verify all types ack'd
|
// Verify all types ack'd
|
||||||
if (!string.IsNullOrWhiteSpace(authenticationScheme) && !signOutContext.Accepted)
|
if (!string.IsNullOrWhiteSpace(authenticationScheme) && !signOutContext.Accepted)
|
||||||
{
|
{
|
||||||
throw new InvalidOperationException("The following authentication scheme was not accepted: " + authenticationScheme);
|
throw new InvalidOperationException($"The following authentication scheme was not accepted: {authenticationScheme}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -97,33 +97,33 @@ namespace Microsoft.AspNet.Http
|
||||||
{
|
{
|
||||||
public bool SignedIn { get; set; }
|
public bool SignedIn { get; set; }
|
||||||
|
|
||||||
public void Authenticate(IAuthenticateContext context)
|
public void Authenticate(AuthenticateContext context)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task AuthenticateAsync(IAuthenticateContext context)
|
public Task AuthenticateAsync(AuthenticateContext context)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Challenge(IChallengeContext context)
|
public void Challenge(ChallengeContext context)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void GetDescriptions(IDescribeSchemesContext context)
|
public void GetDescriptions(DescribeSchemesContext context)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SignIn(ISignInContext context)
|
public void SignIn(SignInContext context)
|
||||||
{
|
{
|
||||||
SignedIn = true;
|
SignedIn = true;
|
||||||
context.Accept(new Dictionary<string, object>());
|
context.Accept();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SignOut(ISignOutContext context)
|
public void SignOut(SignOutContext context)
|
||||||
{
|
{
|
||||||
SignedIn = false;
|
SignedIn = false;
|
||||||
context.Accept();
|
context.Accept();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue