Re: Problem Printing using IWebBrowser2 from IWAM Account on Server 2003



Hi Steven,

LoadUserProfile does not appear to help. I am testing as follows:

> | > | 1. a new account is created on 2003 in the ADMINISTRATORS group.
> | > |
> | > | 2. The administrator invokes cmd.exe using "run as" with the new
> | > account.
> | > |
> | > | 3. The code will display the printer selection dialog and prints
> | > | successfully.
> | > |
> | > | 4. The new account is used to log into 2003 server and logs out.
> | > |
> | > | 5. The administrator invokes cmd.exe using "run as" with the new
> | > account.
> | > |
> | > | 6 The code will NOT display the printer selection dialog and prints
> | > | successfully.

I am successfully calling LoadUserProfile and then UnLoadUserProfile in the
process before attempting to print. The calls succeed. However, it still
fails to suppress the printer selection dialog., even if I try it again
afterwards. It appears, that something other than running LoadUserProfile
may be necessary to suppress the printer selection dialog when the
Webbrowser control is invoked from a process owned by a user who has not
logged on via control alt delete. Again, if I log in using control alt
delete, then the printer selection dialog does not display.

This is the code I am running to call LoadUserProfile. There do not appear
to be errors.

PROFILEINFO profileInfo;

ZeroMemory( &profileInfo, sizeof(profileInfo) );
profileInfo.dwSize = sizeof(profileInfo);


//memset(&profileInfo, 0, sizeof(PROFILEINFO));
//profileInfo.dwSize = sizeof(PROFILEINFO);

//strcpy(profileInfo.lpUserName, szUserName);
profileInfo.lpUserName = szUserName;
// profileInfo.lpUserName = "CVC";
profileInfo.dwFlags = PI_NOUI;

BOOL ret;

try
{
ret = LoadUserProfile(
hToken,
&profileInfo
);
}
catch(...)
{
DWORD err = GetLastError();
return FALSE;
}

if (ret == 0)
{
DWORD err = GetLastError();
int a = 1;
AfxMessageBox("failed");

}

// Unload the profile when it is no longer needed
if ( !UnloadUserProfile(
hToken, // token for the user
profileInfo.hProfile ) ) { // registry key handle
GetLastError();
}

--

Thank you,

Scott

"Steven Cheng[MSFT]" <stcheng@xxxxxxxxxxxxxxxxxxxx> wrote in message
news:LQeUIKPvFHA.768@xxxxxxxxxxxxxxxxxxxxxxxx
> Hi Scott,
>
> The LoadUserProfile API will take an Handle object as input which
> represent
> of the account's logon session token for which you'd like to load the user
> profile.
>
> BOOL LoadUserProfile(
> HANDLE hToken,
> LPPROFILEINFO lpProfileInfo
> );
>
> Also, we can get a Token object from the current running thread or
> process,
> the following WIN32 api just provide such functionality:
>
> BOOL OpenProcessToken(
> HANDLE ProcessHandle,
> DWORD DesiredAccess,
> PHANDLE TokenHandle
> );
>
>
> bool OpenThreadToken(
> DWORD dwDesiredAccess,
> bool bImpersonate = false,
> bool bOpenAsSelf = true,
> SECURITY_IMPERSONATION_LEVEL sil = SecurityImpersonation
> ) throw(...);
>
> Thus, we don't need to manually call logonUser API with cleartext
> uesrname/password to establish a logon session/token
>
> Thanks,
>
> Steven Cheng
> Microsoft Online Support
>
> Get Secure! www.microsoft.com/security
> (This posting is provided "AS IS", with no warranties, and confers no
> rights.)
>
>
>
>
>
> --------------------
> | From: "ScottLR" <ScottLR@xxxxxxxxxxxxxxxx>
> | References: <OhGfBaVuFHA.1572@xxxxxxxxxxxxxxxxxxxx>
> <JQeKPQeuFHA.580@xxxxxxxxxxxxxxxxxxxxx>
> <#$SsNRhuFHA.2960@xxxxxxxxxxxxxxxxxxxx>
> <4F37LuouFHA.3020@xxxxxxxxxxxxxxxxxxxxx>
> | Subject: Re: Problem Printing using IWebBrowser2 from IWAM Account on
> Server 2003
> | Date: Fri, 16 Sep 2005 08:48:32 -0700
> | Lines: 197
> | X-Priority: 3
> | X-MSMail-Priority: Normal
> | X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
> | X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
> | X-RFC2646: Format=Flowed; Original
> | Message-ID: <eo6MeYtuFHA.3388@xxxxxxxxxxxxxxxxxxxx>
> | Newsgroups: microsoft.public.dotnet.framework.aspnet.webcontrols
> | NNTP-Posting-Host: adsl-63-201-229-153.dsl.snfc21.pacbell.net
> 63.201.229.153
> | Path: TK2MSFTNGXA01.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP10.phx.gbl
> | Xref: TK2MSFTNGXA01.phx.gbl
> microsoft.public.dotnet.framework.aspnet.webcontrols:10864
> | X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet.webcontrols
> |
> | Steven,
> |
> | We do not see the printer selection dialog. However, the process stops.
> We
> | know the dialog displays because when performing a "run as" with a user
> that
> | has not logged on manually, the printer selection dialog displays.
> |
> | I am inclined to agree that running LoadUserProfile will solve the
> issue.
> | How can I run this for the IWAM account if I do not know its password?
> |
> |
> | Scott
> |
> | "Steven Cheng[MSFT]" <stcheng@xxxxxxxxxxxxxxxxxxxx> wrote in message
> | news:4F37LuouFHA.3020@xxxxxxxxxxxxxxxxxxxxxxxx
> | > Thanks for your response Scott,
> | >
> | > OK. So you've used a custom COM component in your asp page(not asp.net
> | > yes?) and try printing in that component, and there'll always occur
> | > printer
> | > selection dialog if you haven't interactively logon through that
> service
> | > account on the server yet ,yes?
> | >
> | > One thing I'm still confused is since the ASP's page processing thread
> | > running in a daemon process belonging to a non displayable windows
> | > station,
> | > how could you see the Printer selection dialog? It's only possible for
> us
> | > to see such UI in application running interactively or in a visible
> | > windows
> | > station.
> | >
> | > Anyway, from the symptom of the issue, I think it's likely due to the
> | > USERPROFILE of your IWAM(or other custom account) account. when we
> | > interactively logon , the certain user/account's User Profile is
> loaded,
> | > then the Printer selection dialog won't appear. You can try using the
> | > LoadUserProfile win32 API to manually load the userProfile of your
> | > process's account to see whether it helps.
> | >
> | > Thanks,
> | >
> | > Steven Cheng
> | > Microsoft Online Support
> | >
> | > Get Secure! www.microsoft.com/security
> | > (This posting is provided "AS IS", with no warranties, and confers no
> | > rights.)
> | >
> | >
> | > --------------------
> | > | From: "ScottLR" <ScottLR@xxxxxxxxxxxxxxxx>
> | > | References: <OhGfBaVuFHA.1572@xxxxxxxxxxxxxxxxxxxx>
> | > <JQeKPQeuFHA.580@xxxxxxxxxxxxxxxxxxxxx>
> | > | Subject: Re: Problem Printing using IWebBrowser2 from IWAM Account
> on
> | > Server 2003
> | > | Date: Thu, 15 Sep 2005 09:41:11 -0700
> | > | Lines: 114
> | > | X-Priority: 3
> | > | X-MSMail-Priority: Normal
> | > | X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
> | > | X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
> | > | X-RFC2646: Format=Flowed; Original
> | > | Message-ID: <#$SsNRhuFHA.2960@xxxxxxxxxxxxxxxxxxxx>
> | > | Newsgroups: microsoft.public.dotnet.framework.aspnet.webcontrols
> | > | NNTP-Posting-Host: adsl-63-201-229-153.dsl.snfc21.pacbell.net
> | > 63.201.229.153
> | > | Path:
> TK2MSFTNGXA01.phx.gbl!TK2MSFTNGP08.phx.gbl!tk2msftngp13.phx.gbl
> | > | Xref: TK2MSFTNGXA01.phx.gbl
> | > microsoft.public.dotnet.framework.aspnet.webcontrols:10848
> | > | X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet.webcontrols
> | > |
> | > | Steven,
> | > |
> | > | 1. It is running serverside through a com component in an ASP page.
> | > |
> | > | 2. Agreed.
> | > |
> | > | The issue can also be demonstrated as follows:
> | > |
> | > | 1. a new account is created on 2003 in the administrators group.
> | > |
> | > | 2. The administrator invokes cmd.exe using "run as" with the new
> | > account.
> | > |
> | > | 3. The code will display the printer selection dialog and prints
> | > | successfully.
> | > |
> | > | 4. The new account is used to log into 2003 server and logs out.
> | > |
> | > | 5. The administrator invokes cmd.exe using "run as" with the new
> | > account.
> | > |
> | > | 6 The code will NOT display the printer selection dialog and prints
> | > | successfully.
> | > | --
> | > |
> | > | Thank you,
> | > |
> | > | Scott
> | > | Software995 Support
> | > |
> | > | "Steven Cheng[MSFT]" <stcheng@xxxxxxxxxxxxxxxxxxxx> wrote in message
> | > | news:JQeKPQeuFHA.580@xxxxxxxxxxxxxxxxxxxxxxxx
> | > | > Hi Scott,
> | > | >
> | > | > Welcome to MSDN newsgroup.
> | > | > From your description you're using some c++ unmanaged code to do
> | > printing
> | > | > work for a web page. Also, you got some problem when printing,
> since
> | > | > there'll occur the print setting dialog sometimes.
> | > | >
> | > | > As for your problem, I'd like to confirm the following things:
> | > | >
> | > | > 1. Is your printing code running in a activex control or at
> serverside
> | > | > through COM component in asp page?
> | > | >
> | > | > 2. If running in ActiveX control, since Activex Control is rich
> client
> | > | > component which running at clientside, I think it won't care about
> the
> | > | > IWAM
> | > | > account since IWAM account is a serverside account used to running
> IIS
> | > | > application.
> | > | >
> | > | > Please feel free to let me know if there're anything I
> misunderstand.
> | > | > Thanks,
> | > | >
> | > | > Steven Cheng
> | > | > Microsoft Online Support
> | > | >
> | > | > Get Secure! www.microsoft.com/security
> | > | > (This posting is provided "AS IS", with no warranties, and confers
> no
> | > | > rights.)
> | > | >
> | > | >
> | > | >
> | > | > --------------------
> | > | > | From: "ScottLR" <ScottLR@xxxxxxxxxxxxxxxx>
> | > | > | Subject: Problem Printing using IWebBrowser2 from IWAM Account
> on
> | > Server
> | > | > 2003
> | > | > | Date: Wed, 14 Sep 2005 11:02:38 -0700
> | > | > | Lines: 23
> | > | > | X-Priority: 3
> | > | > | X-MSMail-Priority: Normal
> | > | > | X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
> | > | > | X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
> | > | > | X-RFC2646: Format=Flowed; Original
> | > | > | Message-ID: <OhGfBaVuFHA.1572@xxxxxxxxxxxxxxxxxxxx>
> | > | > | Newsgroups: microsoft.public.dotnet.framework.aspnet.webcontrols
> | > | > | NNTP-Posting-Host: adsl-63-201-229-153.dsl.snfc21.pacbell.net
> | > | > 63.201.229.153
> | > | > | Path:
> | > TK2MSFTNGXA01.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP10.phx.gbl
> | > | > | Xref: TK2MSFTNGXA01.phx.gbl
> | > | > microsoft.public.dotnet.framework.aspnet.webcontrols:10832
> | > | > | X-Tomcat-NG:
> microsoft.public.dotnet.framework.aspnet.webcontrols
> | > | > |
> | > | > | The code below successfully invokes printing from an ASP page.
> | > | > |
> | > | > | If I run the code before a user manually logs in as the IWAM
> | > account,
> | > | > the
> | > | > | printer selection dialog is unfortunately displayed. If I have
> | > logged
> | > | > into
> | > | > | the IWAM account and logged out, then the printer selection
> dialog
> | > does
> | > | > not
> | > | > | display.
> | > | > |
> | > | > | I do not want the printer selection dialog to display. Logging
> into
> | > the
> | > | > IWAM
> | > | > | account requires changing the account's password and is not an
> | > | > acceptable
> | > | > | solution. What must be done so that the printer selection dialog
> is
> | > | > | suppressed without requiring needing to log in as the IWAM
> account?
> | > | > |
> | > | > | VARIANT parameter;
> | > | > | VariantInit(&parameter);
> | > | > | V_VT(&parameter) = VT_ARRAY | VT_BYREF;
> | > | > | V_ARRAY(&parameter) = parameter_array;
> | > | > |
> | > | > | // start printing browser contents
> | > | > |
> | > | > | hr =
> | > | > |
> | > | >
> | >
> _Browser->ExecWB(OLECMDID_PRINT,OLECMDEXECOPT_DONTPROMPTUSER,&parameter,NULL
> | > | > );
> | > | > |
> | > | > |
> | > | > |
> | > | >
> | > |
> | > |
> | > |
> | >
> |
> |
> |
>


.



Relevant Pages

  • Re: Problem Printing using IWebBrowser2 from IWAM Account on Server 2003
    ... logon session of the ASP process account? ... LoadUserProfile first before calling the SetDefaultPrinter? ... | Subject: Re: Problem Printing using IWebBrowser2 from IWAM Account on ... |> component or just the code that your construct the WEBbrowser control, ...
    (microsoft.public.dotnet.framework.aspnet.webcontrols)
  • Re: Impersonating Users
    ... After impersonating the user, ... CertOpenStore(), I make the call to LoadUserProfile(). ... >> I can successfully impersonate any local user account ...
    (microsoft.public.platformsdk.security)
  • Re: Problem Printing using IWebBrowser2 from IWAM Account on Server 2003
    ... The LoadUserProfile API will take an Handle object as input which represent ... of the account's logon session token for which you'd like to load the user ... | How can I run this for the IWAM account if I do not know its password? ...
    (microsoft.public.dotnet.framework.aspnet.webcontrols)
  • Re: Problem Printing using IWebBrowser2 from IWAM Account on Server 2003
    ... and try printing in that component, ... USERPROFILE of your IWAM(or other custom account) account. ... then the Printer selection dialog won't appear. ... |> account since IWAM account is a serverside account used to running IIS ...
    (microsoft.public.dotnet.framework.aspnet.webcontrols)
  • Re: Problem Printing using IWebBrowser2 from IWAM Account on Server 2003
    ... We do not see the printer selection dialog. ... How can I run this for the IWAM account if I do not know its password? ... > account on the server yet,yes? ...
    (microsoft.public.dotnet.framework.aspnet.webcontrols)