2009-10-15 16 views
5

Ho la seguente struttura in IIS.Impostazione di NTAuthenticationProviders a livello di applicazione in IIS 6

Internet Information Services 
(local computer) 
    Web Sites 
    Default Web Site 
    MyApplication 

MyApplication è un'applicazione in IIS.

L'autenticazione integrata di Windows NON è impostata su Default Web Site. Tuttavia, desidero impostare l'autenticazione integrata di Windows su MyApplication. (È un'app intranet).

Questo può essere fatto tramite la GUI: fare clic con il tasto destro su Default Web Site e scegliere Properties. Selezionare la scheda Directory Security e fare clic su Edit sul controllo di autenticazione e accesso anonimo.

Voglio includerlo in uno script di installazione. Ho altri comandi di configurazione, usando adsutil.vbs ma non riesco a impostare l'autenticazione integrata di Windows.

Esecuzione:

cscript // nologo c: \ Inetpub \ AdminScripts \ adsutil.vbs GET/W3SVC/1/NTAuthenticationProviders

Returns

NTAuthenticationProviders  : (STRING) "NTLM" 

Tuttavia, i Eseguito per essere in grado di eseguire

cscript // nologo c: \ Inetpub \ AdminScripts \ adsutil.vbs GET/W3SVC/1/root/myapplication/NTAuthenticationProviders

ma questo torna

Error Trying To GET the property: (Get Method Failed) 
NTAuthenticationProviders (This property is probably not allowed at this node) 

Non è possibile impostare NTAuthenticationProviders Metabase proprietà a livello di applicazione?

risposta

4

La proprietà della metabase che controlla i valori delle proprietà di Accesso autenticato sulla sicurezza della directory di IIS -> dialogo Metodi di autenticazione è in realtà chiamata AuthFlags.

Il valore è una bandiera ed è documentato qui:

AuthFlags Metabase Property (IIS 6.0) (TechNet)

Per impostare questo valore per l'autenticazione integrata di Windows (AuthNTLM) utilizzare il seguente comando (fare attenzione perché questo comando opera IISNumber: 1) -

adsutil.vbs SET /W3SVC/1/ROOT/MyApplication/AuthFlags 4

Se si desidera impostare, ad esempio, sia l'autenticazione NTLM sia l'autenticazione di base, è necessario eseguire il booleano O i valori insieme, ad es. MD_AUTH_BASIC | AuthNTLM.Questo prodotto sarebbe un risultato intero di 6:

:: Set both NTLM and Basic authentication
adsutil.vbs SET /W3SVC/1/ROOT/MyApplication/AuthFlags 6

Se si controlla il file metabase (C:\WINDOWS\system32\inetsrv\MetaBase.xml) e la ricerca di:

Location="/LM/W3SVC/1/ROOT/MyApplication"

... si vedrà l'attributo che controlla questa impostazione (dopo aver impostato a 6 come sopra):

AuthFlags="AuthBasic | AuthNTLM"

Si può richiedere un certo tempo prima che questo valore viene aggiornato nella metabase perché i cambiamenti come ad poiché questo non viene immediatamente scaricato nel file (anche se IISRESET lo farà aggiornare immediatamente).

+0

Superbo! Grazie! – Paul

+1

A proposito, sei corretto riguardo a IISRESET. – Paul

Problemi correlati