Недопустимое название аренды

Я работаю над сервисным проектом ASP.NET Boilerplate.

Когда я сохраняю клиент, он возвращает ошибку:

Недопустимое имя арендатора

Имя аренды содержит пробелы. TenantDto сопоставляется с Tenant объектом без ошибок. Столбец TenancyName таблицы базы данных имеет значение nvarchar(64). Ошибка возникает при сохранении.


person charitht99 perera    schedule 27.12.2017    source источник


Ответы (2)


Из документации по управлению арендаторами:

Класс AbpTenant определяет некоторые базовые свойства, наиболее важными из которых являются:

  • TenancyName: это уникальное имя арендатора в приложении. Его не следует менять в обычном режиме. Его можно использовать для выделения поддоменов арендаторам, таким как «mytenant.mydomain.com». Константа Tenant.TenancyNameRegex определяет правило именования.
  • Имя: Произвольное, удобочитаемое длинное имя арендатора.

TenancyNameRegex "^[a-zA-Z][a-zA-Z0-9_-]{1,}$", так как пробелы в поддоменах запрещены.

Как указано выше, используйте Name для удобочитаемого имени (с пробелами) клиента.

person aaron    schedule 27.12.2017
comment
Я прокомментировал аннотацию TenancyNameRegex, но все равно получаю эту ошибку - person charitht99 perera; 27.12.2017
comment
Я прокомментировал аннотацию регулярного выражения - person charitht99 perera; 28.12.2017
comment
TenancyNameRegex не следует удалять. Вы говорите, будто я снял тормоза, но моя машина все еще падает :) - person Alper Ebicoglu; 28.12.2017

Перед сохранением клиента он проверяется на соответствие регулярному выражению TenancyNameRegex. Таким образом, имя арендатора не может содержать пробел (по задумке). Не удаляйте проверку регулярных выражений, но добавьте проверку на стороне клиента для проверки имени клиента.

protected virtual Task ValidateTenancyNameAsync(string tenancyName)
{
    if (!Regex.IsMatch(tenancyName, AbpTenant<TUser>.TenancyNameRegex))
    {
         throw new UserFriendlyException(L("InvalidTenancyName"));
    }

    return Task.FromResult(0);
}

См. код => https://github.com/aspnetboilerplate/aspnetboilerplate/blob/45fe6d9f38b79ab111eaf2a54b507b87c92e544e/src/Abp.Zero.Common/MultiTenancy/AbpTenantManager.cs#L222

person Alper Ebicoglu    schedule 28.12.2017