Identity
Overview
Smartstore builds on ASP.NET Core Identity to manage user accounts, roles and authentication. The platform models users with the Customer
entity and groups permissions through CustomerRole
records. Custom implementations of SignInManager
, UserStore
and PasswordHasher
adapt the framework to Smartstore's business rules.
Customers and roles
Customer: primary user record storing credentials, profile data and activity flags.
CustomerRole: represents membership groups and the permission set assigned to customers.
ExternalAuthenticationRecord persists links between a customer and third-party identities.
Background tasks like
DeleteGuestsTask
keep the identity store tidy.
Getting the current customer
The current customer can be retrieved through IWorkContext
:
public class MyService
{
private readonly IWorkContext _workContext;
public MyService(IWorkContext workContext)
{
_workContext = workContext;
}
public Customer GetCurrentCustomer()
=> _workContext.CurrentCustomer
}
Authentication
SmartSignInManager
extends ASP.NET Core's SignInManager
to support login by email or username, generate authentication cookies and enforce lockout.
var result = await _signInManager.PasswordSignInAsync(userNameOrEmail, password, isPersistent: false, lockoutOnFailure: true);
if (result.Succeeded)
{
// user logged in
}
UserManager<Customer>
exposes helpers for password reset, email confirmation and role assignment.
External authentication
Modules may register external login providers by implementing IExternalAuthenticationMethod
. Each provider registers its configuration and callback routes in its Startup
class. Smartstore ships modules for popular platforms like Facebook and Google, and custom modules can add additional providers in the same way.
Last updated
Was this helpful?