can we make tomorrow at 6 am gmt?
hi liangshiwei to be noted Auth, Host & front are deployed in ONE IIS server in a local network (NOT connected the internet).
Step One I run the DBMigrator in the local network to create the database.
Step Two i deployed auth with url https://xyz/tmsauth and it works fine with no errors in log file.
Step Three i deployed host with url https://xyz/tmshost and have made changes in the SQL Database in OpenIddictApplications table to match with the new Uris. swagger was not working because of the root url and then i have changed the SwaggerEndpoint in TMSHttpApiHostModule.cs and now swagger works fine and could get authorized and execute endpoints. log file shows one error repeatedly: GetHealthReport Threw an exception when trying to get report from /health-status configured with name TMS Health Status.
Step Four i replaced font-bundle.css & font-bundle.rtl.css with local files in angular.json.
Step Five deployed front with url https://xyz:4200. first error i got was invalid issuer in discovery document expected: https://xyz/tmsauth/ current: https://xyz/tmsauth I double checked the last '/' was there but still throwing the same error and then i removed the last '/' from the environment.prod.ts file, so the new oAuthConfig issuer = 'https://xyz/tmsauth' and the error disappeared. i had some CORS policy errors but i got them fixed.
After that i got to the blank page with no errors, as mentioned above the network tab in developer tool stop in the request number 25.
I use abp version 7.4.2 this error show , when I run AuthServer or when redirect to login page
Thnx , it worked
hide tenant switch
You can remove the
CookieTenantResolveContributor
Configure<AbpTenantResolveOptions>(options => { options.TenantResolvers.RemoveAll((x => x.Name == CookieTenantResolveContributor.ContributorName)); });
the system directoly knows which tenant
You can custom the
LoginModel
. for example:[ExposeServices(typeof(LoginModel))] public class MyLoginModel : OpenIddictSupportedLoginModel { private readonly ITenantRepository _tenantRepository; public MyLoginModel( IAuthenticationSchemeProvider schemeProvider, IOptions<AbpAccountOptions> accountOptions, IAbpRecaptchaValidatorFactory recaptchaValidatorFactory, IAccountExternalProviderAppService accountExternalProviderAppService, ICurrentPrincipalAccessor currentPrincipalAccessor, IOptions<IdentityOptions> identityOptions, IOptionsSnapshot<reCAPTCHAOptions> reCaptchaOptions, AbpOpenIddictRequestHelper openIddictRequestHelper, ITenantRepository tenantRepository) : base(schemeProvider, accountOptions, recaptchaValidatorFactory, accountExternalProviderAppService, currentPrincipalAccessor, identityOptions, reCaptchaOptions, openIddictRequestHelper) { _tenantRepository = tenantRepository; } public async override Task<IActionResult> OnPostAsync(string action) { using (CurrentTenant.Change(await FindTenantByUser())) { return await base.OnPostAsync(action); } } private async Task<Guid?> FindTenantByUser() { var tenants = await _tenantRepository.GetListAsync(); foreach (var tenant in tenants) { using(CurrentTenant.Change(tenant.Id)) { ///...Find User and return the TenantId } } return null; } }
How I to find the user and return TenantId??
in which file should i write this code
Configure<AbpTenantResolveOptions>(options => { options.TenantResolvers.RemoveAll((x => x.Name == CookieTenantResolveContributor.ContributorName)); });
we moved our ABP project to a local network ( offline) , When i try to start my identity server it needs me to enter usernanme & password when i try to login by using the comman abp login username -p password it requires internet access .
is there a way instead of the internet to login
its not in the internet