Weblog @ rebex.cz

Weblogy na webu Rebexu
Welcome to Weblog @ rebex.cz Sign in | Help
in Search

Problems presenting features of interest

Web Services vs. přístupová práva

.NET security se mě nějak nechce pustit - tentokrát v kontextu Web Services...

Píšu servis, který zprostředkuje přístup k databázi Exchange serveru, a píšu ho v C# - je to můj první Web Service, a tato RPC architektura i programovací jazyk jsou koneckonců vyvíjené společně, takže by se neměly nijak tlouct. Neměly...

Můj Web Service implicitně běží jako Network Service, což kupodivu není "user name" (přinejmenším log4net tvrdí, že Principal.Identity.Name je v tomto kontextu prázdný řetězec), nýbrž Windows Identity NT AUTHORITY\NETWORK SERVICE. Proč je tak složité získat pravé jméno? :-)

Network Service může ledacos, ale jednou z věcí, které nezvládá, je otevření Exchange mailboxu. Network Service nejspíš žádný mailbox nemá (což je jen dobře - těžko od tohoto účtu očekávat, že si bude číst poštu), jenže selhává, i když se pokusí otevřít mailbox někoho jiného (a kdyby jen selhával - ani si nestěžuje). CDO IDataSource.Open sice parametry pro uživatelské jméno a heslo, ale ať jsem tam cpal cokoli, k ničemu to nevedlo...

Takže jsem se rozhodl sestoupit z výšin .NETu a impersonovat. To zafungovalo lépe - dokázal jsem se přihlásit jako administrátor. Jako jiný uživatel ale bohužel nikoli :-( - volám-li LogonUser s parametrem LOGON32_LOGON_INTERACTIVE, vysvětlí mi server, že obyčejní uživatelé nemají na interaktivní přihlášení nárok, zatímco použiju-li LOGON32_LOGON_NETWORK, dozvím se od .NETu, že vzdálení uživatelé nemají co natahovat dynamické knihovny:

System.IO.FileLoadException: Access is denied: 'ADODB'.

Člověk by očekával, že tyto dvě operace se dají provést odděleně, pod různými účty - ale dosud je mi to nepovedlo...

Published 15. března 2004 23:48 by vbarta

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

No Comments

Leave a Comment

(required) 
(optional)
(required) 
Submit
Powered by Community Server (Personal Edition), by Telligent Systems