// 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;
using System.Collections.Generic;
using Microsoft.Framework.ConfigurationModel;
using Microsoft.Framework.DependencyInjection;
namespace Microsoft.AspNet.Identity
{
///
/// Default services used by UserManager and RoleManager
///
public class IdentityServices
{
public static IEnumerable GetDefaultUserServices() where TUser : class
{
return GetDefaultUserServices(new Configuration());
}
public static IEnumerable GetDefaultUserServices(IConfiguration configuration) where TUser : class
{
var describe = new ServiceDescriber(configuration);
// TODO: review defaults for validators should get picked up from config?
yield return describe.Transient, UserValidator>();
yield return describe.Transient, PasswordValidator>();
yield return describe.Transient();
yield return describe.Transient, ClaimsIdentityFactory>();
// TODO: rationalize email/sms/usertoken services
}
public static IEnumerable GetDefaultRoleServices() where TRole : class
{
return GetDefaultRoleServices(new Configuration());
}
public static IEnumerable GetDefaultRoleServices(IConfiguration configuration) where TRole : class
{
var describe = new ServiceDescriber(configuration);
// TODO: review defaults for validators should get picked up from config?
yield return describe.Instance>(new RoleValidator());
}
}
}