při spouštění VB.NET aplikace - "operation not allowed by the security policy"   otázka

VB.NET, Bezpečnost

obracím se na vás o pomoc, protože už si nevím rady.

konfigurace:

Microsoft Visual Basic 2008 Express Edition (version 9.0.30729.1 SP, framework 3.5 SP1)

Win XP SP2 cz verze 5.1

Office 2003 SP3 eng

Vytvořil jsem aplikaci (Win console), která podle uživatelského zadání vytvoří SELECT příkaz, pak provede konekt k db Oracle 9, založí nový excelovský soubor a do něj vysype data. Zkompilovaný exe překopíruji na sdílený disk na serveru a tento exe spouštím. Spouštění aplikace z mé stanice jede, data jsou vysypána do excelovského souboru.

avšak na stanici kolegyně se objeví okno s hlášením:

„Application attempted to perform an operation not allowed by the security policy. To grant this application the required permission, contact your system administrator, or use the Microsoft.NET Framework Cofiguration tool.“

Můj boj právě spočívá v tom, jak zprovoznit tuto aplikaci na přístroji kolegyně.

Pro úplnost udávám, že na mém PC nevidím v nástrojích pro zprávu Microsoft.NET framework 1.1 configuguration tool;

u kolegyně, kde má aplikace hlásí ono hlášení tento nástroj existuje.

Hledal jsem na webu řešení, ale stále se mi nedaří.

Provedl jsem vygenerování klíče C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin>sn -k keypair.snk – vytvořil se soubor keypair.snk;

ten jsem překopíroval do adresáře projektu W:\_DOC\Visual Studio 2008\Projects\odber_artiklu_prodejnami\

v properties projektu jsem provedl sign the assembly tímto klíčem (keypair.snk) v security properties aplikace jsem nastavil možnost „this is full trust application.“

Nic nepomáhá...

V podstatě jsem se řídil dle návodu http://blogs.msdn.com/b/shawnfa/archive/...

Zkoušel jsem i nějaká nastavení v nástroji Microsoft .NET Framework Configuration Tool ale vše bez výsledku.

Aplikaci mám uloženou na síťovém disku a z něho jí na stanici kolegyně spouštím.

Hláška je pořád stejná, tak jsem asi neprovedl vše, co jsem měl. Ale nevím už jak dál. Poradíte?

Možná už chybí jen malý krůček. Pomůže odinstalovat framework 1.0 na stanici kolegyně?

Z webu jsem stahnul FrameworkDetect.exe (velikost 23 552 B) a ten mi na mém stroji hlásí, že

.NET framework 1.0 není nainstalován

.NET framework 1.1 není nainstalován

.NET framework 2.0 je nainstalován (SP2)

.NET framework 3.0 je nainstalován (SP1)

.NET framework 3.5 je nainstalován (SP1)

WCF je (nevím o co go, ale pro jistotu uvádím)

WPF je (nevím o co go, ale pro jistotu uvádím)

WF je (nevím o co go, ale pro jistotu uvádím)

Card Space je (nevím o co go, ale pro jistotu uvádím)

U kolegyně jsem .NET detektor nepouštěl (nemohu se teď k PC dostat), ale instaloval jsem tam .NET 2.0 SP2.

Vláďa

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Celý problém spočívá v tom, že aplikaci spouštíte ze síťového disku. To je standardně považováno za nedůvěryhodnou zónu. Jde sice nastavit aby to šlo (v konfiguraci Frameworku), ale musí se to udělat na všech počítačích kde aplikace poběží a je to zbytečné. Nejjednodušším řešením je zkopírovat aplikaci na místní disk.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Myslím že pomáhalo i to, když si uživatel na cílovém počítači namapoval onen síťový disk jako jednotku označenou písmenem. Pořád tu však zůstává problém, že to je potřeba udělat na každém počítači.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ano, spouštění ze síťového disku je standardně považováno za nedůvěryhodnou zónu.

Zkusil jsem tedy změnit nastavení politiky na lokální stanici tak, že zdůvěryhodním síťový adresář, a to takto:

CasPol.exe -m -ag 1.2 -url file:///M:/Aplikace/vytvory/* FullTrust

Příkaz prošel, ale oné hlášky "operation not allowed by the security policy" jsem se ani tak nezbavil.

Když jsem pak zjistil, že v adresářích

c:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\

c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\

existují CasPol.exe, tedy jsou dvakrát, velice jsem se zamyslel.

Pomohla mi základní otázka: "co dělám jinak?"

Jinak je jen to, že na mém stroji je framework 3.5, na stanici kolegyně 2.0 SP2.

Tak jsem se nasral, milý framework 2.0 SP2 jsem odinstaloval a nainstaloval framework 3.5 SP1. Celé toto trdlování na pomalé stanici kolegyně zabralo asi hodinu, ale nakonec jsem slavil úspěch.

Hláška zmizela. Aplikace se konečně spouští. Soubor CasPol.exe existuje jen v jednom adresáři a nemusel jsem ho ani použít.

Právě kopírování mé VB.net aplikace na lokální disky jsem se chtěl vyhnout. Je ještě vývoji, kolegové přiběhnou, že by ještě rádi přidali funkčnost takovou a makovou, a já bych pak nedělal nic jiného, než po každém jejich výmyslu obíhal jejich stanice.

Takto přepíši jeden jediný soubor na síťovém disku a mám vystaráno.

VR

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak v tom případě by Vám mohla pomoci technologie clickOnce. Jde o to že místo build budete v projektu dávat publish. Visual Studio vytvoří soubory které nakopírujete na ten síťový disk. Jeden ze souborů je html. Uživatelům jen pošlete jeho adresu, aplikaci budou spouštět přes tuto stránku (ona se jim ta aplikace stáhne kamsi do osobních složek), ale pokud nastavíte že má být dostupná pouze online, máte tím zajištěno že se jim pokaždé spustí aktuální verze.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Díky vám oběma.

Technologii clickOnce neznám.

Podívám se na to.

VR

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Děláte zbytečnosti a přiděláváte si tak práci. Zkopírováním na místní disk se vyhnete spoustě problémů a pro distribuci lze použít zmiňovaný ClickOnce.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback