界面开发框架DevExpress XAF v24.1新版预告 - 跨平台应用UI(二)

这篇具有很好参考价值的文章主要介绍了界面开发框架DevExpress XAF v24.1新版预告 - 跨平台应用UI(二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

DevExpress XAF是一款强大的现代应用程序框架,允许同时开发ASP.NET和WinForms。XAF采用模块化设计,开发人员可以选择内建模块,也可以自行创建,从而以更快的速度和比开发人员当前更强有力的方式创建应用程序。

本文中的内容概述了XAF跨平台.NET应用UI和DevExpress .NET App、Web API服务(预计发布日期:2024年6月)将发布的特性/功能。

在上文中(点击这里回顾>>),我们介绍了在下一个新版(v24.1)发布周期中ASP.NET Core Blazor UI的新特性、新功能等,本文将继续介绍安全方面的增强等。

注意:本文中列出的功能和特性说明官方当前/预计的发展计划,此信息仅供参考之用,其中列出的功能/产品可能会更改。

获取DevExpressv23.2正式版下载(Q技术交流:909157416)

安全增强
单点登录(SSO)支持

今天,现代XAF Blazor和WinForms应用程序与组织内部的许多外部系统集成在一起。例如,如果一个组织使用Microsoft 365, XAF应用程序通常可以在https://myapps.microsoft.com/上与该组织内的许多其他应用程序一起使用。由于XAF Blazor和WinForms .NET 6+应用程序(基于XPO和EF core)支持Microsoft Entra ID和其他OAuth2提供商,组织希望/更喜欢XAF应用程序与现有系统/服务(如Microsoft Entra单点登录(SSO))共享相同的登录详细信息或身份验证cookie。在v24.1中,XAF应用程序将本地支持SSO。

换句话说,组织需要满足以下要求:当用户已经在组织内进行身份验证时(例如,使用Microsoft 365), XAF应用程序必须与SSO无缝协作。目前XAF开发人员必须实现自定义解决方案来修改XAF的登录表单和身份验证行为以支持SSO,重要的单点登录场景包括但不限于以下场景:

  1. 如果用户没有在组织内登录,那么XAF应用程序将显示标准的OAuth2/SSO提供者登录表单(就像Teams, Word或Outlook通常为Microsoft 365所做的那样)。如果用户被管理员强制注销,那么XAF应用程序也应该显示标准的登录表单。
  2. 如果用户在组织内登录(它可以是另一个非XAF应用程序),则不会为用户显示XAF登录表单,焦点直接移动到XAF应用程序UI(通过来自组织的“应用程序仪表板”的链接或通过其他方法),XAF应用程序中的登录过程在后台自动进行(通过API调用)。在这种情况下,不应该强迫XAF用户显式地按下“Login with Microsoft”,因为SSO将按照预期“正常工作”。
  3. 如果组织内的用户在用户已经登录后需要进行额外的安全检查(例如,在30-60天后通过电话重新确认MFA信息),那么XAF应用程序必须提供一个清晰易懂的标准OAuth2提供者UI,并禁止XAF UI内的任何操作。例如,Teams、Word或Outlook会显示模态对话框来重新确认你的登录细节,然后用户才能再次访问和使用这些Microsoft 365应用程序。
支持ASP.NET Core身份和其他外部权限提供程序和存储

在v24.1中,您可以在XAF Blazor和WinForms应用中启用标准ASP.NET Core身份框架功能,这些应用由.NET 6+和实体框架核心提供支持。这包括Microsoft.AspNetCore.Identity.EntityFrameworkCore和数据库特定的身份包(如Microsoft.EntityFrameworkCore.SqlServer)的无缝集成。

如果您在XAF的解决方案向导中启用此选项,XAF项目将生成 `public class ApplicationUser : IdentityUser { /*... * /}`以及预配置的DbContext——两者都集成到XAF的安全系统中,用于身份验证和授权(基于角色的访问控制或RBAC)。XAF的RBAC(类型、记录和字段级权限)之间的链接是通过通用的IdentityRole和其他EF Core数据模型类(它们是Identity数据模型的一部分)建立的,这个Identity数据模型通过EF Core映射到底层数据库。

除了Identity模型和数据库存储之外,XAF客户还将体验到以下好处:

  • 自动访问所有标准身份特性,如单点登录(SSO)、注册新用户的端点、恢复密码和其他Microsoft实现(或未来的.NET实现)。
  • 特定于XAF的权限被序列化为JSON,并存储在与identityrole相关的表中。对于高级场景,XAF开发人员可以实现自定义权限提供程序,例如与外部服务而不是Identity数据库同步用户权限和角色(从技术上讲,您需要在XAF应用程序和外部端点之间传递JSON)。
  • XAF项目中的安全配置代码的数量也将被最小:

builder.Services.AddIdentityCore<ApplicationUser>() .AddEntityFrameworkStores<AppDbContext>() .AddApiEndpoints();

  • 如果您已经有了使用EF Core和Identity的外部项目,那么XAF的集成也会变得容易得多。在XAF驱动的项目中添加开发人员也会更容易,因为EF Core和ASP. NET Core Identity框架被数百万的.NET开发人员所使用。
  • XAF将继续为Identity用户和角色生成其标准的登录和CRUD UI屏幕,并允许您编辑XAF对这些角色的权限。
  • 您还可以在其他数据模型中引用ApplicationUser类(例如,实现CreatedBy或ModifiedBy属性)。标准标准函数,如CurrentUserId、IsUserInRole和其他函数也将起作用。

dev框架,ui,c#,devexpress,界面控件,UI开发

WinForms应用的中间层安全:支持多租户和OAuth2

在v24.1中,具有中间层安全性的XAF WinForms应用程序(. NET 6+)将原生支持OAuth2提供者和多租户。

正如我们在安全注意事项文档中所描述的,使用中间层应用程序服务器,Windows桌面应用程序可以更好地满足企业安全标准。通过我们的解决方案,EF Core或XPO开发人员可以保留他们的标准DbContext或Session,并从任何.NET客户端(如XAF WinForms或非XAF应用程序)发起到数据存储的远程连接。此功能在某些环境/业务应用程序(由于安全考虑而无法维护直接数据库连接的环境)中至关重要。

强调一点:非AF EF Core或XPO开发人员可以从我们的中间层应用服务器中受益,并使用他们的实体数据模型保留DbContext或Session。这对许多桌面.NET开发人员(WinForms、WPF、WinUI等)来说尤其重要,因为他们现在需要满足更高的安全标准。简而言之,这些开发人员要么需要为Windows改造/现代化他们的“胖客户端”,要么需要使用现代Web技术和云服务从头开始。我们的中间层安全性允许您选择“更容易”且可能更可靠的路由,并使用中间件“替换”直接数据库连接。查看下面的代码片段以获得这方面的更多信息:

var httpRemoteRepository = new HttpRemoteRepository(httpClient, typeof(EFCoreDbContext).FullName);
var optionsBuilder = new DbContextOptionsBuilder<EFCoreDbContext>();
optionsBuilder.UseMiddleTier(opt =>
opt.UseRemoteRepository(httpRemoteRepository));
optionsBuilder.UseChangeTrackingProxies();
optionsBuilder.UseLazyLoadingProxies();
var dbContextOptions = optionsBuilder.Options;
var dbContext = new EFCoreDbContext(dbContextOptions);
var users = dbContext.Employees.ToList();
WinForms应用程序的中间层安全性:增强性能和可用性

具有中间层安全性的XAF WinForms将在v24.1中执行得更快。

此外,现在可以从BaseObject后代中调用新的SetPropertyValueWithBypassSecurity方法来绕过内部应用程序逻辑中某些受保护属性的安全检查(也支持自定义基类)。

当您希望设置CreatedBy、ModifiedBy、CreatedOn、UpdatedOn等服务属性时,这个功能对XAF开发人员尤其有价值——我们的Audit Trail和Model Difference模块使用类似的机制进行操作。SetPropertyValueWithBypassSecurity方法可以像应用程序管理员一样,在代码中代表受限制/普通用户自由地设置受保护的属性,而无需知道管理员凭据(如服务任务的模拟)。

public override void OnSaving() {
if (ObjectSpace.IsNewObject(this)) {
SetPropertyValueWithBypassSecurity(nameof(CreatedBy), GetCurrentUser());
}
else {
SetPropertyValueWithBypassSecurity(nameof(UpdatedBy), GetCurrentUser());
SetPropertyValueWithBypassSecurity(nameof(UpdatedOn), DateTime.Now);
}
if (!IsRunningOnMiddleTierServer()) {
// ...
}
}

对于许多XAFers来说,这是一个长期要求的选项—一个阻止从集成模式完全迁移到中间层安全的选项(因为CreateNonsecuredObjectSpace和其他解决方案不方便)。SetPropertyValueWithBypassSecurity也有一定的限制,比如调用这个方法只能从BaseObject.OnSaving内部支持(为了最好的安全性),或者被绕过的属性不能在内部更新其他受保护的属性,这个新选项可能将覆盖80%的流行用例。随着相关的性能增强,默认情况下在解决方案向导中启用XAF WinForms应用程序中的中间层安全性之前的最后一步,希望XAF开发人员能够发现这些新功能也足以切换到中间层安全性。

由于篇幅有限,下期继续讲解,请持续关注查看最新产品资讯哦~文章来源地址https://www.toymoban.com/news/detail-856232.html

到了这里,关于界面开发框架DevExpress XAF v24.1新版预告 - 跨平台应用UI(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 跨平台.NET应用UI组件DevExpress XAF v22.2亮点 - 支持.NET 7

    DevExpress XAF是一款强大的现代应用程序框架,允许同时开发ASP.NET和WinForms。DevExpress XAF采用模块化设计,开发人员可以选择内建模块,也可以自行创建,从而以更快的速度和比开发人员当前更强有力的方式创建应用程序。 在新版中增强了 DevExpress XAF 的Blazor、Web API Service的功能

    2024年02月09日
    浏览(86)
  • LightDB - oracle_fdw join下推增强【24.1】

    在之前的版本中 oracle_fdw 支持对join 进行下推,但有如下的限制: 只支持两表join的下推,不支持3表及以上的下推 连接条件和where 条件可以下推 如果连接被下推, order by 不会被下推 没有连接条件的cross join 不会被下推 只有select 语句支持连接下推 表必须在同一外部服务器上

    2024年01月25日
    浏览(44)
  • LightDB - oracle_fdw 过滤条件下推增强【24.1】

    LightDB 在24.1版本对oracle_fdw 的where下推进行了增强,新增对如下两种情况进行下推: 字符串比较下推,如 a ‘100’ 这种,具体见下面示例 隐式转换为numeric 类型情况下的下推 新增 nvl 和 trim 函数下推 oracle_fdw 不支持字符串比较下推是因为 LightDB 和 Oracle 的排序规则可能不同,

    2024年01月20日
    浏览(44)
  • LightDB ecpg 支持 exec sql execute ... end-exec【24.1】【oracle 兼容】

    LightDB 从24.1 版本开始支持 oracle pro*c 中执行匿名块的语法(之前可以通过do 语句执行匿名块): 因为匿名块不是SQL标准的一部分,所以此用法也不存在于SQL标准中。 需要注意的是由于内部实现方式的原因,在匿名块中不能使用 $AnonBlockStmt$ ,示例如下:

    2024年03月14日
    浏览(56)
  • 11.24直播预告 | AIGC,看热闹不如看门道

    如果把AI比作既富含能源,又无限神秘的海域,那么AIGC这条近半年内流经学术界和创投圈的支流,也无疑既带来了无数机遇,又蕴藏未知风险。 几天前,将门-TechBeat社区的专题(《AIGC的八大前沿创新》)当中,我“门”梳理了AIGC比较有代表性的八个创新方向的具体研究工作

    2024年02月10日
    浏览(51)
  • 云原生Kubernetes:K8S集群实现容器运行时迁移(docker → containerd) 与 版本升级(v1.23.14 → v1.24.1)

    目录 一、理论 1.K8S集群升级 2.环境 3.升级策略 4.master1节点迁移容器运行时(docker → containerd)  5.master2节点迁移容器运行时(docker → containerd)  6.node1节点容器运行时迁移(docker → containerd)  7.升级集群计划(v1.23.14 → v1.24.1) 8.升级master1节点版本(v1.24.1) 9.升级master2节点版本

    2024年02月03日
    浏览(67)
  • 文档控件DevExpress Office File API v23.1新版亮点 - 支持.NET MAUI

    DevExpress Office File API是一个专为C#, VB.NET 和 ASP.NET等开发人员提供的非可视化.NET库。有了这个库,不用安装Microsoft Office,就可以完全自动处理Excel、Word等文档。开发人员使用一个非常易于操作的API就可以生成XLS, XLSx, DOC, DOCx, RTF, CSV 和 Snap Report等企业级文件。 DevExpress Office Fi

    2024年02月13日
    浏览(37)
  • 基于DevExpress的GridControl实现的一些界面处理功能

    DevExpress的GridControl控件能够提供很多强大的操作,其视图GridView能够通过各种设置,呈现出多种复杂的界面效果,本篇随笔探讨一些常见的GridControl控件及其GridView的视图操作处理,以便在大家也需要的时候作为一个参考的代码。其中设计一些常见的操作,如合并单元格、汇总

    2024年02月04日
    浏览(29)
  • 界面控件DevExpress WPF中文入门级教程 - 格式化值

    DevExpress WPF v21.2高速下载 格式化值概述 大多数DevExpress WPF控件都接受数据输入,并尽可能为您的最终用户提供键盘驱动的数据输入 - 以及灵活的数据表示格式。 轻松应用数字或日期时间格式来编辑值,以提高 WPF 应用程序的可用性。 您可以使用标准或自定义格式说明符、复合

    2024年02月04日
    浏览(56)
  • 界面控件DevExpress WinForm中文教程 - 如何应用Windows 11 UI?

    DevExpress WinForm拥有180+组件和UI库,能为 Windows Forms 平台创建具有影响力的业务解决方案。 DevExpress WinForm 能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任! DevExpress WinForm组件允许开发人员轻松地引入受

    2024年02月08日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包