【问题标题】:Updating / Changing settings from client side in AspnetBoilerplate with Angular使用 Angular 在 AspnetBoilerplate 中从客户端更新/更改设置
【发布时间】:2019-03-07 21:06:49
【问题描述】:

使用 Angular / .net Core 模板的 Asp.net Boilerplate 我看到“设置”命名空间中有一些客户端函数 {get, getBoolean, getInt} 可以很容易地获取设置,但我确实这样做了没有看到任何有关更新这些设置的文档。

var currentColor = abp.setting.get("SiteColorPreference");

https://aspnetboilerplate.com/Pages/Documents/Setting-Management

我期待在 get 方法旁边看到类似的 set 方法。我错过了什么,或者我应该尝试为该功能提交 PR?只有 getter 而没有 setter 似乎很奇怪。

当然,我可以更新用户服务并创建自己的函数来更新设置,但这似乎应该像 get 方法一样内置到框架中。

也许这不是正确的地方,但问题的目标是我想利用本地存储来存储用户变量。例如,用户可能想要配置 UI 并进行布局设置,或者每个用户都有他们正在使用的帐户的设置......简而言之,类似于 Profile Provider: https://docs.microsoft.com/en-us/dotnet/api/system.web.profile.sqlprofileprovider?view=netframework-4.7.2

【问题讨论】:

  • 任何用户都不允许更改设置。因此,如果您想从客户端更改设置,您需要检查权限或检查角色。所以这取决于你的业务逻辑。在这种情况下,框架并没有固执己见。
  • @AlperEbicoglu 感谢您的回复。我更新了问题。但基本上 ABP 中使用什么机制,如 WebConfig 用户配置文件设置?我认为这很接近它

标签: angular aspnetboilerplate


【解决方案1】:

您需要根据您的要求创建Application Service。 让我们研究一下它以更新用户主题选择。

创建一个名为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:我在头脑中编写了代码。

【讨论】:

  • 从 AbpSettings 表中获取和设置数据的服务器端功能似乎很清楚,我基本上已经完成并运行了该代码,并且我在客户端创建了一个自定义服务来保存。但这仍然让我认为客户端缺少默认功能,在我看来,这个框架应该有类似的东西。看起来您是volosoft 的回购/工作的贡献者。您的 Asp.net 零产品中有此功能吗?
  • 不!这将是一个巨大的安全漏洞
  • 那么用户配置文件设置提供了什么机制???类似于 web.config 中的配置文件提供程序。这是尚未解决的真正问题。
猜你喜欢
  • 2016-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-06
相关资源
最近更新 更多