我正在尝试注销用户进程完成后,我尝试使用PXAccess或PXAccessInfo类来完成此操作,但未能找到注销用户的正确方法。有没有其他方法可以注销我可能忽略的用户?
发布于 2018-01-16 00:45:52
我调整了标准的SignOut代码,使其可以从图形扩展而不是Aspx.cs网页运行。它等效于此SignOut菜单项:
在本例中,我将代码放在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);
}
}
}
https://stackoverflow.com/questions/48265025
复制相似问题