我尝试在完成一个进程后注销用户,我尝试使用PXAccess或PXAccessInfo类来执行此操作,但无法找到正确的方法来注销用户。在签署用户时是否还有其他方法可以掩饰?
答案 0 :(得分:1)
我调整了标准的SignOut代码,因此可以从图形扩展名而不是Aspx.cs网页运行。它等同于此SignOut菜单项:
在此示例中,我将代码放在SOOrderEntry Initialize覆盖中,以便在导航到SalesOrderEntry图时立即注销当前用户。您可以将它放在Action事件处理程序中,但我还没有在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);
}
}
}