我有一个用Visual Basic 6.0制作的旧程序。该程序在服务器上的MTS / COM +下运行,作为为客户端提供数据的业务逻辑。它使用ObjectContext对象来获取正在使用应用程序的客户端部分的用户名,从而调用业务逻辑。
Implements ObjectControl
Private m_ctx As ObjectContext
Set m_ctx = GetObjectContext()
l_nm_user = m_ctx.Security.GetDirectCallerName
但是,出于某种原因,在Windows Server 2012 R2中,GetDirectCallerName返回一个emty字符串。这段代码至少在Windows Server 2008 R2和以前的版本中运行良好。
项目中引用了以下库:
stdole2.tlb - OLE Automation
COMSVCS.DLL - COM+ Services Type Library
我应该更改什么才能在Windows Server 2012 R2中使用此功能并正确返回用户名,以便至少返回一些内容?