@namespace Oqtane.Modules.Admin.Login @inherits ModuleBase @inject NavigationManager NavigationManager @inject IJSRuntime jsRuntime @inject IUserService UserService @inject IServiceProvider ServiceProvider ... You are already logged in
 
@code { public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.Anonymous; } } public string Username { get; set; } = ""; public string Password { get; set; } = ""; public bool Remember { get; set; } = false; private async Task Login() { string ReturnUrl = PageState.QueryString["returnurl"]; var authstateprovider = (IdentityAuthenticationStateProvider)ServiceProvider.GetService(typeof(IdentityAuthenticationStateProvider)); if (authstateprovider == null) { // server-side Blazor User user = new User(); user.SiteId = PageState.Site.SiteId; user.Username = Username; user.Password = Password; user = await UserService.LoginUserAsync(user, false, false); if (user.IsAuthenticated) { // complete the login on the server so that the cookies are set correctly on SignalR var interop = new Interop(jsRuntime); string antiforgerytoken = await interop.GetElementByName("__RequestVerificationToken"); var fields = new { __RequestVerificationToken = antiforgerytoken, username = Username, password = Password, remember = Remember, returnurl = ReturnUrl }; await interop.SubmitForm("/login/", fields); } else { AddModuleMessage("Login Failed. Please Remember That Passwords Are Case Sensitive.", MessageType.Error); } } else { // client-side Blazor User user = new User(); user.SiteId = PageState.Site.SiteId; user.Username = Username; user.Password = Password; user = await UserService.LoginUserAsync(user, true, Remember); if (user.IsAuthenticated) { authstateprovider.NotifyAuthenticationChanged(); NavigationManager.NavigateTo(NavigateUrl(ReturnUrl, Reload.Site)); } else { AddModuleMessage("Login Failed. Please Remember That Passwords Are Case Sensitive.", MessageType.Error); } } } private void Cancel() { string ReturnUrl = PageState.QueryString["returnurl"]; NavigationManager.NavigateTo(ReturnUrl); } }