#angular #aspnetboilerplate
#angular #aspnetboilerplate
Вопрос:
С помощью Asp.net Шаблон с использованием шаблона Angular / .net Core Я вижу, что в пространстве имен «setting» есть несколько клиентских функций {get, getBoolean, getInt}, которые позволяют довольно легко получить настройки, но я не вижу никакой документации по обновлению этих настроек.
var currentColor = abp.setting.get("SiteColorPreference");
https://aspnetboilerplate.com/Pages/Documents/Setting-Management
Я ожидал увидеть аналогичные методы set наряду с методами get. Чего мне не хватает или я должен попытаться отправить PR для этой функциональности? Кажется довольно странным иметь только геттеры и никаких сеттеров.
Конечно, я могу обновить пользовательский сервис и создать свою собственную функцию для обновления настроек, но, похоже, она должна быть встроена в фреймворк точно так же, как методы get.
Возможно, это неправильное место, но цель вопроса в том, что я хочу использовать локальное хранилище для пользовательских переменных. Например, пользователь может захотеть настроить пользовательский интерфейс и задать настройки макета, или у каждого пользователя есть настройки, для какой учетной записи они работают… в двух словах что-то вроде Profile Provider: https://learn.microsoft.com/en-us/dotnet/api/system.web.profile.sqlprofileprovider?view=netframework-4.7.2
Комментарии:
1. настройки не разрешается изменять ни одному пользователю. итак, если вы хотите изменить настройку на клиенте, вам нужно проверить разрешение или роль. так что это зависит от вашей бизнес-логики. и в этом случае фреймворк не является самоуверенным.
2. @AlperEbicoglu спасибо за ответ. Я обновил вопрос. Но в принципе, какой механизм в ABP используется как настройки профиля пользователя WebConfig?? Я думал, что это близко к этому
Ответ №1:
Вам необходимо создать службу приложений в соответствии с вашими требованиями. Давайте исследуем это для обновления выбранной пользователем темы.
Создайте службу приложений с именем UserPreferencesAppService
и добавьте метод, подобный UpdateMyThemeId()
. И в вашем методе установите тему пользователя, как показано ниже;
public class UserPreferencesAppService: ApplicationService {
const string AppPermissions.Pages_User_Settings = "AppPermissions.Pages.User.Settings"
[AbpAuthorize(AppPermissions.Pages_User_Settings)]
private async Task UpdateMyThemeId(string themeId)
{
await SettingManager.ChangeSettingForUserAsync(user, "User.Theme.Selection", themeId);
}
}
PS: Я написал код на макушке своей головы.
Комментарии:
1. Функциональность на стороне сервера кажется довольно понятной для получения и настройки данных из таблицы AbpSettings, у меня в основном уже есть готовый и запущенный код, и я создал пользовательский сервис на стороне клиента для сохранения. Но это все еще заставляет меня думать, что на стороне клиента отсутствует функциональность по умолчанию, по моему мнению, эта платформа должна иметь что-то подобное. Похоже, вы являетесь участником репозитория / работы для волософт. Есть ли эта функциональность в вашем Asp.net нулевой продукт?
2. Нет! Это было бы огромной дырой в безопасности
3. Итак, какой механизм предусмотрен для настроек профиля пользователя??? Что-то похожее на profile provider в web.config. Это реальный вопрос, который не был решен.