Base solution for your next web application

Activities of "bilalhaidar"

Thanks for the input :-)

What I meant is that, an Admin would map a user to a tenant. In this case, the DB already has information that user1 belongs to tenant1. Correct?

Maybe I am not understanding well concept of multi-tenants.

Thanks a lot,

Regards

Hi,

I visited this link and it says, not found:

<a class="postlink" href="https://github.com/aspnetzero/aspnet-zero/releases">https://github.com/aspnetzero/aspnet-zero/releases</a>

What is the correct URL for GitHub?

Thanks, Bilal

Hi,

I just downloaded a project. When I compile the entire solution in VS, I got the error in the Web app:

tsc.exe exited with code 1

any idea?

Thanks

I had to install TypeScript for VS 2015 and things went fine.

The URL for that extension: <a class="postlink" href="https://www.microsoft.com/en-us/download/details.aspx?id=48593">https://www.microsoft.com/en-us/downloa ... x?id=48593</a>

Regards Bilal

Hello,

I am still very new to this template and I got overwhelmed seeing all these features.

Is there a user-guide documentation on how to use and configure existing features?

For example, I want to configure an Admin per Host. Then create a new Tenant with its own Admin that can access only that tenant and create users only under that tenant.

Thanks, Bilal

Hello,

I noticed something which doesn't make sense in the AppSettingProvider when it comes to adding a new SettingDefinition for the AllowSelfRegistration.

The code uses

ConfigurationManager.AppSettings[AppSettings.TenantMangement.UseCaptchaOnRegistration]

Should it use something like this?

ConfigurationManager.AppSettings[AppSettings.TenantMangement.AllowSelfRegistration]

This is the code for the AppSettingsProvider I have:

public class AppSettingProvider : SettingProvider
    {
        public override IEnumerable<SettingDefinition> GetSettingDefinitions(SettingDefinitionProviderContext context)
        {
            context.Manager.GetSettingDefinition(AbpZeroSettingNames.UserManagement.TwoFactorLogin.IsEnabled).DefaultValue = false.ToString().ToLowerInvariant();

            var defaultPasswordComplexitySetting = new PasswordComplexitySetting
            {
                MinLength = 6,
                MaxLength = 15,
                UseNumbers = true,
                UseUpperCaseLetters = false,
                UseLowerCaseLetters = true,
                UsePunctuations = false,
            };

            return new[]
                   {
                       //Host settings
                        new SettingDefinition(AppSettings.TenantManagement.AllowSelfRegistration,ConfigurationManager.AppSettings[AppSettings.TenantManagement.UseCaptchaOnRegistration] ?? "true"),
                        new SettingDefinition(AppSettings.TenantManagement.IsNewRegisteredTenantActiveByDefault,ConfigurationManager.AppSettings[AppSettings.TenantManagement.IsNewRegisteredTenantActiveByDefault] ??"false"),
                        new SettingDefinition(AppSettings.TenantManagement.UseCaptchaOnRegistration,ConfigurationManager.AppSettings[AppSettings.TenantManagement.UseCaptchaOnRegistration] ?? "true"),
                        new SettingDefinition(AppSettings.TenantManagement.DefaultEdition,ConfigurationManager.AppSettings[AppSettings.TenantManagement.DefaultEdition] ?? ""),
                        new SettingDefinition(AppSettings.Security.PasswordComplexity, defaultPasswordComplexitySetting.ToJsonString(),scopes: SettingScopes.Application | SettingScopes.Tenant),

                        //Tenant settings
                        new SettingDefinition(AppSettings.UserManagement.AllowSelfRegistration, ConfigurationManager.AppSettings[AppSettings.UserManagement.UseCaptchaOnRegistration] ?? "true", scopes: SettingScopes.Tenant),
                        new SettingDefinition(AppSettings.UserManagement.IsNewRegisteredUserActiveByDefault, ConfigurationManager.AppSettings[AppSettings.UserManagement.IsNewRegisteredUserActiveByDefault] ?? "false", scopes: SettingScopes.Tenant),
                        new SettingDefinition(AppSettings.UserManagement.UseCaptchaOnRegistration, ConfigurationManager.AppSettings[AppSettings.UserManagement.UseCaptchaOnRegistration] ?? "true", scopes: SettingScopes.Tenant)
                   };
        }
    }

Thank you, Bilal

Yes it works now. Thanks a lot.

Correct. Thanks a lot for the explanation.

As far as I understood, the Framework would run the validation (data annotations) before calling my AppService method correct? Then, if that is true, how can I send back a message to client? Will the framework give me a way to know that the input didn't meet the validation rules?

I am trying to configure my multi-tenant website as :

WebSiteRootAddress to be <a class="postlink" href="http://localhost:6240/">http://localhost:6240/</a>{TENANCY_NAME}

When I try to access website as:

<a class="postlink" href="http://localhost:6240/Default">http://localhost:6240/Default</a>

I get 404 Not Found

Any idea? Thanks

Showing 11 to 20 of 635 entries