I can check the credentials with invalid credentials and then I am able to 
check the credentials using valid credentials. No lock out. Here is the code:

        private static bool CheckCredentials(string userName, string password)
        {
            bool valid = false;
            using(PrincipalContext context = new 
PrincipalContext(ContextType.Domain, "ASGARD"))
            {
                valid = context.ValidateCredentials(userName, password);
            }
            return valid;
        }
        static void Main(string[] args)
        {
            Debug.WriteLine(string.Format("Credentials are {0}", 
CheckCredentials("user", "invalid")));
            Debug.WriteLine(string.Format("Credentials are {0}", 
CheckCredentials("user", "valid")));
        }

 And the output is:

Credentials are False
Credentials are True

Now my biggest problem is that the CA is not getting called.
Kevin Burton
Senior Software Engineer
BUYSEASONS
262-901-2000 Office
262-901-2312 Fax
kev...@buyseasons.com


-----Original Message-----
From: Wilson, Phil [mailto:phil.wil...@invensys.com]
Sent: Thursday, March 10, 2011 3:10 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] C# Custom Action questions

This is nothing to do with exceptions. I'm telling you that the act of 
verifying credentials is a flavor of logon, and that a failure to "verify" may 
be treated in exactly the same way as when your service tries to log on with 
invalid credentials. In other words you can write a bunch of code that tries to 
verify an account and the result is that the account gets locked out, or you 
can just go back to what you were doing before and have the service logon 
failure cause account lockout. I'm saying that this is what you may end up 
with, so all your code gives you very little advantage, if any at all.

You should run your custom action in a program and use an invalid password. Try 
it a dozen times and see if the account gets locked out.

Phil Wilson


-----Original Message-----
From: Kevin Burton [mailto:kev...@buyseasons.com]
Sent: Thursday, March 10, 2011 12:27 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] C# Custom Action questions

I am not sure what you mean by "square one"? Are you saying that the checking 
of credentials that are invalid will throw an exception that is not caught?

First I have to solve the problem that I don't think the CA is being called as 
evidenced by the snippet of log I posted earlier. Unless the log entry will be 
suppressed by an exception. But the entry on the log indicates that the DLL 
could not be run so I don't think I am even getting to that point. Also I get 
the same error (DLL could not be run) whether I supply the correct credentials 
or incorrect ones.

Kevin Burton
Senior Software Engineer
BUYSEASONS
262-901-2000 Office
262-901-2312 Fax
kev...@buyseasons.com


-----Original Message-----
From: Wilson, Phil [mailto:phil.wil...@invensys.com]
Sent: Thursday, March 10, 2011 1:55 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] C# Custom Action questions

........ and Kevin, are you sure that attempting to validate will not be 
treated as a logon failure and put you back to square one? User account 
validation schemes are often nothing more than an attempt to log on with the 
supplied credentials. That might be what <Context>.ValidateCredentials does - I 
don't know enough about AD and AdsOpenObject() to know if that's what happens. 
Reflector seems to indicate that's the underlying Win32 call.

Phil Wilson


-----Original Message-----
From: Skildum, Mathew [mailto:mathew.skil...@aspect.com]
Sent: Thursday, March 10, 2011 10:49 AM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] C# Custom Action questions

This is where you use the property that the action set.  You do not allow the 
user off of the dialog until they enter credentials that work and the property 
is set to the value you expect.  This way it is up to the installer to exit the 
install if they do not have the needed information, but you give them all the 
chances they need to get it right.

Mat Skildum


-----Original Message-----
From: Kevin Burton [mailto:kev...@buyseasons.com]
Sent: Thursday, March 10, 2011 12:38 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] C# Custom Action questions

But I want the install to fail. If it continues with the wrong credentials it 
will try to start services with the wrong credentials.

Kevin Burton
Senior Software Engineer
BUYSEASONS
262-901-2000 Office
262-901-2312 Fax
kev...@buyseasons.com


-----Original Message-----
From: Skildum, Mathew [mailto:mathew.skil...@aspect.com]
Sent: Thursday, March 10, 2011 12:32 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] C# Custom Action questions

In cases where you checking things like credentials you want the actions to 
return success so that the install does not fail.  As it was said, you set a 
property if the call succeeded and check if the property is set.

You use the other return values in those cases where you want the install to 
fail and not continue such as when updating configuration files or updating 
anything that the application requires to function.

The basic rule of thumb is when in the UI sequence always have actions return 
success and set properties use in conditional statements.  When the action is 
called in the Execute sequence and it is critical to the success of the product 
always have the action return success or failure so that the install can fail 
and rollback when needed.

Mat Skildum


-----Original Message-----
From: Kevin Burton [mailto:kev...@buyseasons.com]
Sent: Thursday, March 10, 2011 12:21 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] C# Custom Action questions

So CA's always return Success. What are the other return values used for? Thank 
you. For the tip.

The problem that I am having now is that it doesn't appear that the CA is 
getting called. I look in the log and see the message indicated earlier in this 
thread indicating that the DLL "could not be run". Any idea for this?

Kevin Burton
Senior Software Engineer
BUYSEASONS
262-901-2000 Office
262-901-2312 Fax
kev...@buyseasons.com

-----Original Message-----
From: Castro, Edwin G. (Hillsboro) [mailto:edwin.cas...@fiserv.com]
Sent: Thursday, March 10, 2011 12:03 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] C# Custom Action questions

You'll want to set a property that can be checked in a condition.

Edwin G. Castro
Software Developer - Staff
Electronic Banking Services
Fiserv
Office: 503-746-0643
Fax: 503-617-0291
www.fiserv.com
P Please consider the environment before printing this e-mail

> -----Original Message-----
> From: Kevin Burton [mailto:kev...@buyseasons.com]
> Sent: Thursday, March 10, 2011 6:05 AM
> To: General discussion for Windows Installer XML toolset.
> Subject: Re: [WiX-users] C# Custom Action questions
>
> How does the custom action indicate that the credentials are incorrect?
>
> Kevin Burton
> Senior Software Engineer
> BUYSEASONS
> 262-901-2000 Office
> 262-901-2312 Fax
> kev...@buyseasons.com
>
> -----Original Message-----
> From: Simon Dahlbacka [mailto:simon.dahlba...@gmail.com]
> Sent: Wednesday, March 09, 2011 11:21 PM
> To: General discussion for Windows Installer XML toolset.
> Subject: Re: [WiX-users] C# Custom Action questions
>
> You shouldn't return failure if the credentials are incorrect, if you
> do so you will get this error.
>
> "been there, done that... "
> On Mar 10, 2011 6:34 AM, "Kevin Burton" <kev...@buyseasons.com> wrote:
> > I read that. Which of the four rules is this violating?
> >
> > I made the warning go away by making the C# CA 'immediate' thus I
> > don't
> have to have another custom action to remember the property. So I have
> >
> > <CustomAction Id="CA_CheckCredentials"
> > Return="check"
> > Execute="immediate"
> > BinaryKey="CustomActionsDLL"
> > DllEntry="CheckCredentials"/>
> >
> > And the schedule
> >
> > <InstallExecuteSequence>
> > <Custom Action="CA_CheckCredentials" After="InstallInitialize" />
> > </InstallExecuteSequence>
> >
> > But in the verbose log I get:
> >
> > MSI (s) (B8:9C) [22:04:26:415]: Note: 1: 1723 2: CA_CheckCredentials 3:
> CheckCredentials 4: D:\WINDOWS\Installer\MSI410.tmp
> > Action start 22:04:26: CA_CheckCredentials.
> > MSI (s) (B8:9C) [22:04:26:415]: Product: Bsi WebServices -- Error 1723.
> There is a problem with this Windows Installer package. A DLL required
> for this install to complete could not be run. Contact your support
> personnel or package vendor. Action CA_CheckCredentials, entry:
> CheckCredentials,
> library: D:\WINDOWS\Installer\MSI410.tmp
> >
> > Error 1723. There is a problem with this Windows Installer package.
> > A DLL
> required for this install to complete could not be run. Contact your
> support personnel or package vendor. Action CA_CheckCredentials, entry:
> CheckCredentials, library: D:\WINDOWS\Installer\MSI410.tmp
> >
> > The error says that the DLL cannot be run. Why? I believe I have
> > followed
> the instructions for writing a managed CA to the tee (though there
> seems to be some disagreement between the online tutorial
> http://www.tramontana.co.hu/wix/ and this book).
> >
> >
> > -----Original Message-----
> > From: Castro, Edwin G. (Hillsboro) [mailto:edwin.cas...@fiserv.com]
> > Sent: Wednesday, March 09, 2011 5:26 PM
> > To: General discussion for Windows Installer XML toolset.
> > Subject: Re: [WiX-users] C# Custom Action questions
> >
> > ICE63 - http://msdn.microsoft.com/en-us/library/aa369008.aspx
> >
> > Edwin G. Castro
> > Software Developer - Staff
> > Electronic Banking Services
> > Fiserv
> > Office: 503-746-0643
> > Fax: 503-617-0291
> > www.fiserv.com
> > P Please consider the environment before printing this e-mail
> >
> >
> >> -----Original Message-----
> >> From: Kevin Burton [mailto:kev...@buyseasons.com]
> >> Sent: Wednesday, March 09, 2011 2:15 PM
> >> To: General discussion for Windows Installer XML toolset.
> >> Subject: Re: [WiX-users] C# Custom Action questions
> >>
> >> I think I have solved this problem. The CA was scheduled in the
> >> InstallExecuteSequence and was marked as 'deferred' so I created
> >> the following 'Custom Data'.
> >>
> >> <CustomAction Id="SetProperty" Property="CA_CheckCredentials"
> >> Value="[SERVICEUSER],[SERVICEPASSWORD]" /> <CustomAction
> >> Id="CA_CheckCredentials"
> >> Return="check"
> >> Execute="deferred"
> >> BinaryKey="CustomActionsDLL"
> >> DllEntry="CheckCredentials"/>
> >>
> >> And scheduled it like (I am trying to follow the instructions on
> >> page
> >> 133 of
> >> 'WiX: A Developer's Guide to Windows Installer XML' by Nick
> >> Ramirez)
> >>
> >> <InstallExecuteSequence>
> >> <Custom Action="SetProperty" Before="CA_CheckCredentials" />
> <Custom
> >> Action="CA_CheckCredentials" After="InstallInitialize" />
> >> </InstallExecuteSequence>
> >>
> >> Now I get the ICE warning:
> >>
> >> warning LGHT1076: ICE63: Some action falls between
> >> InstallInitialize and RemoveExistingProducts.
> >>
> >> Is this a "bad" warning? I don't completely understand why this
> >> scheduling is bad. I would like to know that the credentials are
> >> bad
> >> *before* the existing products are removed.
> >>
> >> If I look at the .msi generated with Orca I see that in the
> >> InstallExecuteSequence table
> >>
> >> InstallInitialize 1500
> >> SetProperty 1501
> >> CA_CheckCredentials 1502
> >> RemoveExistingProducts 1503
> >>
> >> This seems like a valid sequence to me but I am obviously missing
> >> something as the warning is there for a purpose.
> >>
> >> -----Original Message-----
> >> From: Christopher Painter [mailto:chr...@deploymentengineering.com]
> >> Sent: Wednesday, March 09, 2011 3:30 PM
> >> To: General discussion for Windows Installer XML toolset.
> >> Subject: Re: [WiX-users] C# Custom Action questions
> >>
> >> If I had to guess you calling this CA as a ControlEvent off a
> >> Dialog / Control in your UI sequence.  Am I correct?  If so, it's a known 
> >> issue
> >> that Msi lacks the ability to process messages in this scenario.   The
> >> workaround is to set a dummy property to see a "PROPERTY CHANGED"
> >> message in the log file where the value is the data you are trying
> >> to
> log.
> >>
> >> Chris
> >>
> >> ---
> >> Christopher Painter, Author of Deployment Engineering Blog Have a
> >> hot tip, know a secret or read a really good thread that deserves
> >> attention? E-Mail Me
> >>
> >>
> >>
> >> ----- Original Message ----
> >> From: Kevin Burton <kev...@buyseasons.com>
> >> To: General discussion for Windows Installer XML toolset.
> >> <wix-users@lists.sourceforge.net>
> >> Sent: Wed, March 9, 2011 3:24:17 PM
> >> Subject: [WiX-users] C# Custom Action questions
> >>
> >>
> >> I have a very simple C# Custom Action that is supposed to verify
> credentials:
> >>
> >> using Microsoft.Deployment.WindowsInstaller;
> >>
> >> namespace BuySeasons.BsiServices.Install {
> >>     public class CustomActions
> >>     {
> >>         [CustomAction]
> >>         public static ActionResult CheckCredentials(Session session)
> >>         {
> >>             session.Log(string.Format("Begin CheckCredentials -
> >> {0}/{1}", session["SERVICEUSER"], session["SERVICEPASSWORD"]));
> >>             bool valid = false;
> >>             using (PrincipalContext context = new
> >> PrincipalContext(ContextType.Domain, "ASGARD"))
> >>             {
> >>                 valid =
> >> context.ValidateCredentials(session["SERVICEUSER"],
> >> session["SERVICEPASSWORD"]);
> >>             }
> >>             if(valid)
> >>                 return ActionResult.Success;
> >>             else
> >>                 return ActionResult.Failure;
> >>         }
> >>     }
> >> }
> >> It is included in the WiX Product as
> >>
> >>     <Binary Id="CustomActionsDLL"
> >>
> >> SourceFile="C:\Projects\....\bin\$(var.Configuration)\BrainCustomAc
> >> ti
> >> o
> >> ns.C
> >> A.dll"
> >> />
> >>
> >>     <CustomAction Id="CA_CheckCredentials"
> >>                   Return="check"
> >>                   Execute="deferred"
> >>                   BinaryKey="CustomActionsDLL"
> >>                   DllEntry="CheckCredentials"/>
> >>
> >> And scheduled as:
> >>
> >>     <InstallExecuteSequence>
> >>       <Custom Action="CA_CheckCredentials" After="InstallInitialize"
> >> />
> >>     </InstallExecuteSequence>
> >>
> >> This all compiles to a .msi without error. I can see
> >> CA_CheckCredentials in Orca just where I want it. But it doesn't
> >> seem to be called. I look at the verbose log and the closest
> >> reference I see
> is:
> >>
> >> Action start 14:56:05: InstallInitialize.
> >> MSI (s) (B0:4C) [14:56:06:052]: Doing action: CA_CheckCredentials
> >> MSI
> >> (s)
> >> (B0:4C) [14:56:06:052]: Note: 1: 2205 2:  3: ActionText
> >>
> >> I don't see the string 'Begin CheckCredentials' as in the code above.
> >> What do you think I have done wrong?
> >>
> >> -------------------------------------------------------------------
> >> --
> >> -
> >> --------
> >> Colocation vs. Managed Hosting
> >> A question and answer guide to determining the best fit for your
> >> organization - today and in the future.
> >> http://p.sf.net/sfu/internap-sfd2d
> >> _______________________________________________
> >> WiX-users mailing list
> >> WiX-users@lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/wix-users
> >>
> >>
> >>
> >>
> >>
> >> -------------------------------------------------------------------
> >> --
> >> -
> >> --------
> >> Colocation vs. Managed Hosting
> >> A question and answer guide to determining the best fit for your
> >> organization - today and in the future.
> >> http://p.sf.net/sfu/internap-sfd2d
> >> _______________________________________________
> >> WiX-users mailing list
> >> WiX-users@lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/wix-users
> >>
> >> -------------------------------------------------------------------
> >> --
> >> -
> >> --------
> >> Colocation vs. Managed Hosting
> >> A question and answer guide to determining the best fit for your
> >> organization - today and in the future.
> >> http://p.sf.net/sfu/internap-sfd2d
> >> _______________________________________________
> >> WiX-users mailing list
> >> WiX-users@lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/wix-users
> >
> ----------------------------------------------------------------------
> --------
> > Colocation vs. Managed Hosting
> > A question and answer guide to determining the best fit for your
> organization - today and in the future.
> > http://p.sf.net/sfu/internap-sfd2d
> > _______________________________________________
> > WiX-users mailing list
> > WiX-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/wix-users
> >
> ----------------------------------------------------------------------
> --------
> > Colocation vs. Managed Hosting
> > A question and answer guide to determining the best fit for your
> > organization - today and in the future.
> > http://p.sf.net/sfu/internap-sfd2d
> > _______________________________________________
> > WiX-users mailing list
> > WiX-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/wix-users
> ----------------------------------------------------------------------
> --------
> Colocation vs. Managed Hosting
> A question and answer guide to determining the best fit for your
> organization - today and in the future.
> http://p.sf.net/sfu/internap-sfd2d
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
> ----------------------------------------------------------------------
> --------
> Colocation vs. Managed Hosting
> A question and answer guide to determining the best fit for your
> organization - today and in the future.
> http://p.sf.net/sfu/internap-sfd2d
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
------------------------------------------------------------------------------
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit for your organization - 
today and in the future.
http://p.sf.net/sfu/internap-sfd2d
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users
------------------------------------------------------------------------------
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit for your organization - 
today and in the future.
http://p.sf.net/sfu/internap-sfd2d
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

------------------------------------------------------------------------------
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit for your organization - 
today and in the future.
http://p.sf.net/sfu/internap-sfd2d
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

------------------------------------------------------------------------------
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit for your organization - 
today and in the future.
http://p.sf.net/sfu/internap-sfd2d
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

------------------------------------------------------------------------------
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit for your organization - 
today and in the future.
http://p.sf.net/sfu/internap-sfd2d
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


*** Confidentiality Notice: This e-mail, including any associated or attached 
files, is intended solely for the individual or entity to which it is 
addressed. This e-mail is confidential and may well also be legally privileged. 
If you have received it in error, you are on notice of its status. Please 
notify the sender immediately by reply e-mail and then delete this message from 
your system. Please do not copy it or use it for any purposes, or disclose its 
contents to any other person. This email comes from a division of the Invensys 
Group, owned by Invensys plc, which is a company registered in England and 
Wales with its registered office at 3rd Floor, 40 Grosvenor Place, London, SW1X 
7AW (Registered number 166023). For a list of European legal entities within 
the Invensys Group, please go to 
http://www.invensys.com/legal/default.asp?top_nav_id=77&nav_id=80&prev_id=77.

You may contact Invensys plc on +44 (0)20 3155 1200 or e-mail 
recept...@invensys.com. This e-mail and any attachments thereto may be subject 
to the terms of any agreements between Invensys (and/or its subsidiaries and 
affiliates) and the recipient (and/or its subsidiaries and affiliates).



------------------------------------------------------------------------------
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit for your organization - 
today and in the future.
http://p.sf.net/sfu/internap-sfd2d
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

------------------------------------------------------------------------------
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit for your organization - 
today and in the future.
http://p.sf.net/sfu/internap-sfd2d
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


*** Confidentiality Notice: This e-mail, including any associated or attached 
files, is intended solely for the individual or entity to which it is 
addressed. This e-mail is confidential and may well also be legally privileged. 
If you have received it in error, you are on notice of its status. Please 
notify the sender immediately by reply e-mail and then delete this message from 
your system. Please do not copy it or use it for any purposes, or disclose its 
contents to any other person. This email comes from a division of the Invensys 
Group, owned by Invensys plc, which is a company registered in England and 
Wales with its registered office at 3rd Floor, 40 Grosvenor Place, London, SW1X 
7AW (Registered number 166023). For a list of European legal entities within 
the Invensys Group, please go to 
http://www.invensys.com/legal/default.asp?top_nav_id=77&nav_id=80&prev_id=77.

You may contact Invensys plc on +44 (0)20 3155 1200 or e-mail 
recept...@invensys.com. This e-mail and any attachments thereto may be subject 
to the terms of any agreements between Invensys (and/or its subsidiaries and 
affiliates) and the recipient (and/or its subsidiaries and affiliates).



------------------------------------------------------------------------------
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit for your organization - 
today and in the future.
http://p.sf.net/sfu/internap-sfd2d
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

------------------------------------------------------------------------------
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit
for your organization - today and in the future.
http://p.sf.net/sfu/internap-sfd2d
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to