Tony
unread,Dec 27, 2011, 12:37:07 PM12/27/11Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to Cassia Users
my remote endpoints are all win 7. i'm running the following code:
string[] servers =
ConfigurationManager.AppSettings["ServerNames"].Split(',');
string serverUser =
ConfigurationManager.AppSettings["UserName"];
string serverPassword =
ConfigurationManager.AppSettings["Password"];
MakeDataTable();
foreach (string server in servers)
{
ITerminalServicesManager mgr = new
TerminalServicesManager();
IntPtr token;
if (!NativeMethods.LogonUser(serverUser, server,
serverPassword, NativeMethods.LogonType.NewCredentials,
NativeMethods.LogonProvider.Default, out token))
{
throw new Win32Exception();
}
try
{
IntPtr tokenDuplicate;
if (!NativeMethods.DuplicateToken(token,
NativeMethods.SecurityImpersonationLevel.Impersonation, out
tokenDuplicate))
{
throw new Win32Exception();
}
try
{
using (WindowsImpersonationContext
impersonationContext = new
WindowsIdentity(tokenDuplicate).Impersonate())
{
using (ITerminalServer serverInstance =
mgr.GetRemoteServer(server))
{
try
{
serverInstance.Open();
IList<ITerminalServicesSession>
sessions = serverInstance.GetSessions();
}
catch (Exception exp)
{
string msg = exp.Message;
string trace = exp.StackTrace;
}
...
when i invoke serverInstance.GetProcesses or any other method on the
serverInstance object, i get an exception. The user i'm connecting as
is an administrator user on the windows 7 remote server. i'm pulling
my hair trying to figure this out. here's the exception:
"Access is denied"
at Cassia.Impl.NativeMethodsHelper.QuerySessionInformation[T]
(ITerminalServerHandle server, Int32 sessionId, WTS_INFO_CLASS
infoClass, ProcessSessionCallback`1 callback)
at
Cassia.Impl.NativeMethodsHelper.QuerySessionInformationForString(ITerminalServerHandle
server, Int32 sessionId, WTS_INFO_CLASS infoClass)
at Cassia.Impl.TerminalServicesSession..ctor(ITerminalServer
server, Int32 sessionId)
at Cassia.Impl.TerminalServer.GetSession(Int32 sessionId)
at DemoMachines.Index.Page_Load(Object sender, EventArgs e) in C:
\Users\Tony\Documents\Visual Studio 2010\Projects\DemoMachines
\DemoMachines\Default.aspx.cs:line 79
at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp,
Object o, Object t, EventArgs e)
at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object
sender, EventArgs e)
at System.Web.UI.Control.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean
includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)