i-mate05
asked on
Programmatically setting the "execute permissions" for a virtual directory to "Scripts Only"
I was wondering if anyone knew the property that you can set to make a virtual directory's execute permissions set to scripts only. I am trying to automatically create multiple virtual directories within a custom installation process.
I'm using System.DirectoryServices:
// Code chunk
DirectoryEntries virtualEntries = rootIIS.Children;
// now add each virtual
DirectoryEntry virtualDir = null;
try
{
virtualDir = rootIIS.Children.Find(appN ame, "IIsWebVirtualDir");
}
catch { /* do nothing */ }
if (virtualDir == null)
virtualDir = rootIIS.Children.Add(appNa me, "IIsWebVirtualDir");
virtualDir.CommitChanges() ;
virtualDir.Properties["App Root"][0] = "/LM/W3SVC/1/ROOT/" + appName;
virtualDir.Invoke("AppCrea te2", new object[] { "2" });
virtualDir.CommitChanges() ;
virtualDir.Properties["Pat h"][0] = path;
virtualDir.Properties["Ena bleDefault Doc"][0] = true;
virtualDir.Properties["Def aultDoc"][ 0] = defaultDocName;
virtualDir.Properties["App FriendlyNa me"][0] = appName;
virtualDir.Properties["Acc essRead"][ 0] = true;
virtualDir.Properties["Acc essExecute "][0] = false;
virtualDir.Properties["Acc essScript" ][0] = true;
virtualDir.Properties["Ena bleDirBrow sing"][0] = false;
virtualDir.Properties["Aut hAnonymous "][0] = true;
virtualDir.Properties["Aut hBasic"][0 ] = false;
virtualDir.Properties["Aut hNTLM"][0] = false;
virtualDir.Properties["Ena bleDefault Doc"][0] = true;
virtualDir.Properties["Def aultDoc"][ 0] = defaultDocName;
// End Code Chunk
Is it a property available to me within the Properties of a Virtual Directory(Directory Entry) object? The virtual directories are all created perfectly, but the execute permissions are not being properly set to scripts only. Any ideas?
Thanks!
I'm using System.DirectoryServices:
// Code chunk
DirectoryEntries virtualEntries = rootIIS.Children;
// now add each virtual
DirectoryEntry virtualDir = null;
try
{
virtualDir = rootIIS.Children.Find(appN
}
catch { /* do nothing */ }
if (virtualDir == null)
virtualDir = rootIIS.Children.Add(appNa
virtualDir.CommitChanges()
virtualDir.Properties["App
virtualDir.Invoke("AppCrea
virtualDir.CommitChanges()
virtualDir.Properties["Pat
virtualDir.Properties["Ena
virtualDir.Properties["Def
virtualDir.Properties["App
virtualDir.Properties["Acc
virtualDir.Properties["Acc
virtualDir.Properties["Acc
virtualDir.Properties["Ena
virtualDir.Properties["Aut
virtualDir.Properties["Aut
virtualDir.Properties["Aut
virtualDir.Properties["Ena
virtualDir.Properties["Def
// End Code Chunk
Is it a property available to me within the Properties of a Virtual Directory(Directory Entry) object? The virtual directories are all created perfectly, but the execute permissions are not being properly set to scripts only. Any ideas?
Thanks!
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
This definately can be achieved using system.directoryservices.d irectoryen try
It looks as though you're committing the setitngs prior to the script access being set (you definately use virtualDir.Properties["Acc essScript" ][0] = true;)
Try this instead:
virtualDir.Properties["App Root"][0] = "/LM/W3SVC/1/ROOT/" + appName;
virtualDir.Properties["Pat h"][0] = path;
virtualDir.Properties["Ena bleDefault Doc"][0] = true;
virtualDir.Properties["Def aultDoc"][ 0] = defaultDocName;
virtualDir.Properties["App FriendlyNa me"][0] = appName;
virtualDir.Properties["Acc essRead"][ 0] = true;
virtualDir.Properties["Acc essExecute "][0] = false;
virtualDir.Properties["Acc essScript" ][0] = true;
virtualDir.Properties["Ena bleDirBrow sing"][0] = false;
virtualDir.Properties["Aut hAnonymous "][0] = true;
virtualDir.Properties["Aut hBasic"][0 ] = false;
virtualDir.Properties["Aut hNTLM"][0] = false;
virtualDir.Properties["Ena bleDefault Doc"][0] = true;
virtualDir.Properties["Def aultDoc"][ 0] = defaultDocName;
virtualDir.Invoke("AppCrea te2", new object[] { "2" });
virtualDir.CommitChanges() ;
It looks as though you're committing the setitngs prior to the script access being set (you definately use virtualDir.Properties["Acc
Try this instead:
virtualDir.Properties["App
virtualDir.Properties["Pat
virtualDir.Properties["Ena
virtualDir.Properties["Def
virtualDir.Properties["App
virtualDir.Properties["Acc
virtualDir.Properties["Acc
virtualDir.Properties["Acc
virtualDir.Properties["Ena
virtualDir.Properties["Aut
virtualDir.Properties["Aut
virtualDir.Properties["Aut
virtualDir.Properties["Ena
virtualDir.Properties["Def
virtualDir.Invoke("AppCrea
virtualDir.CommitChanges()
ASKER