Acumatica:流程完成后注销用户

Acumatica:流程完成后注销用户,acumatica,Acumatica,我正在尝试在进程完成后注销用户,我尝试使用PXAccess或PXAccessInfo类来注销用户,但没有找到正确的方法注销用户。在注销用户时是否有其他我可能忽略的方法 我修改了标准的签出代码,因此它可以从图形扩展而不是Aspx.cs网页运行。它相当于此签出菜单项: 在本例中,我将代码放入SOOrderEntry Initialize override中,以便在您导航到SalesOrderEntry图时立即注销当前用户。您可以将其放在操作事件处理程序中,但我还没有在单独的线程上下文中运行的PXL

我正在尝试在进程完成后注销用户,我尝试使用PXAccess或PXAccessInfo类来注销用户,但没有找到正确的方法注销用户。在注销用户时是否有其他我可能忽略的方法

我修改了标准的签出代码,因此它可以从图形扩展而不是Aspx.cs网页运行。它相当于此签出菜单项:

在本例中,我将代码放入SOOrderEntry Initialize override中,以便在您导航到SalesOrderEntry图时立即注销当前用户。您可以将其放在操作事件处理程序中,但我还没有在单独的线程上下文中运行的PXLongOperation上下文中对其进行测试:

public class SOOrderEntry_Extension:PXGraphExtension<SOOrderEntry>
{
    public override void Initialize()
    {
        System.Web.UI.Page page = System.Web.HttpContext.Current.Handler as System.Web.UI.Page;

        if (page != null)
        {
            PX.Data.PXLogin.LogoutUser(PX.Data.PXAccess.GetUserName(), page.Session.SessionID);
            PX.Common.PXContext.Session.SetString("UserLogin", string.Empty);

            string absoluteLoginUrl = PX.Export.Authentication.AuthenticationManagerModule.Instance.SignOut();

            page.Session.Abandon();
            PX.Data.Auth.ExternalAuthHelper.SignOut(System.Web.HttpContext.Current, absoluteLoginUrl);

            PX.Export.Authentication.FormsAuthenticationModule.
            RedirectToLoginPage(PX.Data.Auth.ExternalAuthHelper.SILENT_LOGIN + "=None", true);
        }
    }
}
public类SOOrderEntry\u扩展名:PXGraphExtension
{
公共覆盖无效初始化()
{
System.Web.UI.Page=System.Web.HttpContext.Current.Handler作为System.Web.UI.Page;
如果(第页!=null)
{
PX.Data.PXLogin.LogoutUser(PX.Data.PXAccess.GetUserName(),page.Session.SessionID);
PX.Common.PXContext.Session.SetString(“UserLogin”,string.Empty);
字符串absoluteLoginUrl=PX.Export.Authentication.AuthenticationManagerModule.Instance.SignOut();
page.Session.放弃();
PX.Data.Auth.ExternalAuthHelper.SignOut(System.Web.HttpContext.Current,absoluteLoginUrl);
PX.Export.Authentication.FormsAuthenticationModule。
RedirectToLoginPage(PX.Data.Auth.ExternalAuthHelper.SILENT_LOGIN+“=None”,true);
}
}
}

我修改了标准的签出代码,因此它可以从图形扩展而不是Aspx.cs网页运行。它相当于此签出菜单项:

在本例中,我将代码放入SOOrderEntry Initialize override中,以便在您导航到SalesOrderEntry图时立即注销当前用户。您可以将其放在操作事件处理程序中,但我还没有在单独的线程上下文中运行的PXLongOperation上下文中对其进行测试:

public class SOOrderEntry_Extension:PXGraphExtension<SOOrderEntry>
{
    public override void Initialize()
    {
        System.Web.UI.Page page = System.Web.HttpContext.Current.Handler as System.Web.UI.Page;

        if (page != null)
        {
            PX.Data.PXLogin.LogoutUser(PX.Data.PXAccess.GetUserName(), page.Session.SessionID);
            PX.Common.PXContext.Session.SetString("UserLogin", string.Empty);

            string absoluteLoginUrl = PX.Export.Authentication.AuthenticationManagerModule.Instance.SignOut();

            page.Session.Abandon();
            PX.Data.Auth.ExternalAuthHelper.SignOut(System.Web.HttpContext.Current, absoluteLoginUrl);

            PX.Export.Authentication.FormsAuthenticationModule.
            RedirectToLoginPage(PX.Data.Auth.ExternalAuthHelper.SILENT_LOGIN + "=None", true);
        }
    }
}
public类SOOrderEntry\u扩展名:PXGraphExtension
{
公共覆盖无效初始化()
{
System.Web.UI.Page=System.Web.HttpContext.Current.Handler作为System.Web.UI.Page;
如果(第页!=null)
{
PX.Data.PXLogin.LogoutUser(PX.Data.PXAccess.GetUserName(),page.Session.SessionID);
PX.Common.PXContext.Session.SetString(“UserLogin”,string.Empty);
字符串absoluteLoginUrl=PX.Export.Authentication.AuthenticationManagerModule.Instance.SignOut();
page.Session.放弃();
PX.Data.Auth.ExternalAuthHelper.SignOut(System.Web.HttpContext.Current,absoluteLoginUrl);
PX.Export.Authentication.FormsAuthenticationModule。
RedirectToLoginPage(PX.Data.Auth.ExternalAuthHelper.SILENT_LOGIN+“=None”,true);
}
}
}

对于将来的参考和其他希望在PXLONG操作中注销用户的用户,他们需要做的只是在CustomInfo包装中调用此函数。下面给出的示例:public类LogOutInfo:IPXCustomInfo{public void Complete(PXLongRunStatus,PXGraph graph){//Call Sign Out Logic}}供将来参考,以及其他希望在PXLongOperation中注销用户的用户,他们需要做的就是在CustomInfo包装中调用此函数。下面给出的示例:public类LogOutInfo:IPXCustomInfo{public void Complete(PXLongRunStatus状态,PXGraph图){//调用签出逻辑}