EPR类企业管理系统

在我们现有系统基础上或全新开发,提供定制服务
为您的企业高效快速实施ERP,WMS,MES,CRM管理系统
全面管控物料仓库、销售业务、采购业务、仓库业务
生产过程、质量检验、组织架构、业务报表


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

用户认证如果没有一个登录窗口中的ASP.NET应用程序

本主题详细介绍从创建和初始化WebApplication对象的那一刻到最终用户对应用程序进行身份验证的那一刻所执行的步骤。根据安全系统在您的应用程序中使用的身份验证策略,可以要求最终用户在登录窗口中键入要进行身份验证的凭据。XAF中有两种内置的身份验证策略。该AuthenticationStandard验证最终用户在登录窗口中输入的信息。该AuthenticationActiveDirectory不需要显示登录窗口。它从系统的活动目录中获取所需的信息。本主题详细介绍了使用内置AuthenticationActiveDirectory策略时如何对最终用户进行身份验证。您可以自定义AuthenticationActiveDirectory,以便显示登录窗口并将其中键入的信息用于身份验证。在这种情况下,请阅读“ ASP.NET应用程序中的使用登录窗口的用户身份验证”主题,以了解登录窗口的显示方式。

验证

阶段说明

干预方式

为了开始认证过程,创建一个对象空间以检查在应用程序数据库中是否存在定义用户登录的记录。在访问数据库之前,请检查数据库中模块版本及其实际版本的兼容性。如果数据库中的版本大于实际版本,则会引发异常,这要求您增加应用程序的版本。如果较低,则引发XafApplication.DatabaseVersionMismatch事件。默认情况下,此事件在XAF解决方案中处理。事件处理程序调用数据库更新程序的更新方法,将数据库更新为所需版本。但是,当应用程序在调试模式下运行时,将调用此方法。在发布模式下,会引发异常(您可以在应用程序中看到整个代码)。

在开始身份验证过程之前,您可以访问由登录用户修改的LogonParameters对象。为此,请处理XafApplication.LoggingOn事件。

您可以执行检查数据库和应用程序兼容性的自定义过程。为此,请处理XafApplication.CustomCheckCompatibility事件。在这种情况下,您还应该在此代码中引发XafApplication.DatabaseVersionMismatch事件,以便在需要时更新数据库。

如果不需要在应用程序中自动生成的XafApplication.DatabaseVersionMismatch事件处理程序中实现的方案,请编写一个自定义事件处理程序。例如,您可以实现一个自定义DatabaseUpdater类,并在DatabaseVersionMismatch事件处理程序中调用其Update方法。

使用XafApplication.DatabaseUpdateMode属性设置更新数据库机制所需的行为。例如,您可以设置UpdateDatabaseAlways值,以便在每次运行应用程序时更新数据库的版本。这在使用VB编写的应用程序中很有用,因为在VB项目中难以增加版本。

使用AuthenticationActiveDirectory时,启动应用程序后立即完成认证。如果已在系统中找到其帐户,并且该数据库中存在相应的对象,则对用户进行身份验证。

如果内置的Authentication类执行的默认身份验证不满足您的要求,请实施一个自定义类。例如,从内置身份验证类之一继承:AuthenticationStandardAuthenticationActiveDirectory。或者,从基AuthenticationBase类继承。在您的类中,重写AuthenticationBase.Authenticate方法。它返回通过登录的最终用户指定的凭据在数据库中找到的用户对象。要查看示例,请参阅“如何:使用自定义登录参数和身份验证”主题。

最终用户定制层已创建。在XAF ASP.NET Web应用程序中,由于默认情况下用户自定义项不存储在任何地方,因此不使用此层。

您可以通过设置存储在Web浏览器中的cookie到列表视图所作的修改IModelOptionsStateStore.SaveListViewStateInCookies的财产选项节点和IModelListViewStateStore.SaveStateInCookies相应的财产| <ListView>节点为true。

登录过程完成后,处理XafApplication.LoggedOn事件以执行自定义操作。

转载保留此链接,注明出处