Author Archives: Robert Haken

avatar Neznámé

About Robert Haken

Software Architect, Founder at HAVIT, Microsoft MVP - ASP.NET/IIS

Bezpečnostní chyba v ASP.NET a workaround s customErrors k jejímu vyřešení

V ASP.NET byla objevena (a zveřejněna!) bezpečnostní chyba, která sofistikovanějšímu útočníkovi umožní získat obsah zdrojových souborů uložených na webovém serveru, včetně web.configu. Podrobnosti popisuje ve svém blog-postu Scott Guthrie. Workaround spočívá v zapnutí customErrors bez rozlišování typu chyby.

Kdo by to chtěl vidět na vlastní oči, tak na YouTube je pěkné video.

Exchange 2010: Pomalý relay (MaxAcknowledgementDelay)

Po upgrade na Exchange 2010 se razantně zpomalil relay mailů z našich aplikací skrz Exchange (SMTP forwarding).

Jak se ukázalo, řešením je přepínač MaxAcknowledgementDelay na příslušném receive-connectoru:

Set-ReceiveConnector "Connector Name" -MaxAcknowledgementDelay 0

MaxAcknowledgementDelay určuje, jak dlouho může Exchange zdržet session, aby jí oznámil výsledek odeslání. Oficiální dokumentace říká:

The MaxAcknowledgementDelay parameter specifies the maximum period the transport server delays acknowledgement until it verifies that the message has been successfully delivered to all recipients. When receiving messages from a host that doesn’t support shadow redundancy, an Exchange Server 2010 transport server will delay issuing an acknowledgement until it verifies that the message has been successfully delivered to all recipients. However, if it takes too long to verify successful delivery, the transport server will time out and issue an acknowledgement anyway.

Osobně to laicky interpretuji tak, že Exchange se při relayingu snaží přijatý mail rovnou i odeslat, tak, aby té iniciující session rovnou oznámil, jestli se to podařilo. A výše uvedený časový limit říká, jak dlouho na to Exchange má, jinak inciující session pokračuje, aniž by se o výsledku odeslání přímo dozvěděla. Nastavením na 0 se řekne, že odesílající aplikace nemá zájem se problém dozvědět hned, ale holt kdyžtak dojde na NDR (Non-Delivery-Report).

Každopádně odesílání 13.000 mailů našich newsletterů z business.center.cz se z hrůzostrašného tempa 1 mail/3-10 sec vrátilo na původní čísla známá z Exchange 2007, tedy zhruba 30 minut na všechny maily (což mimochodem není nic proti dávným dobám, kdy jsme používali Merak Mail Server, a ten to dokázal převzít do fronty zhruba za 5 minut, ale to je holt jiná kategorie).

Exchange 2010: Přístup Domain Admins na ActiveSync (Error 0x85010004, InvalidPolicyKey)

Pokud Vám ActiveSync hlásí chybu 0x85010004 a jste Domain Admins, pak vězte, že jedna z tajnůstek Exchange 2010 říká, že Domain Admins účty mají tento přístup zakázaný.

Obejít se to dá takto:

  1. Vezměte Active Directory Users and Computers konzoli
  2. Přepněte si režim na View / Advanced Features
  3. Odeberte uživateli skupinu Domain Admins, OK
  4. Otevřete znovu uživatele a na záložce Security jděte na Advanced a zaškrtněte Include inheritable permissions from this object’s parent, OK, OK, OK
  5. Přidejte si zpět Domain Admins
  6. …a Active Sync jede

Lenovo ThinkPad X201 první dojmy po týdnu

Pořídil jsem si před týdnem nový notebook Lenovo ThinkPad X201. Jde o 12″ notebook z kategorie ultra-portable, který nahradil můj dosavadní Acer TravelMate 6292. Na 12″ jsem tedy zvyklý, jako hlavní počítač mám klasické PC.

Původně jsem pokukoval po Dellu, ale ty jsou ve 12″ o generaci zpět a o řád dražší (sleva se z nich dá vydyndat velká, ale tady by museli jít na 40%, aby vůbec byly konkurenceschopní).

X201 jsem koupil za cenu cca 31.000 Kč včetně dockovací stanice, a hned jsem v něm vyměnil disk za SSD OCZ Summit 120 GB, který jsem za vzal ze svého velkého PC a do něj si koupil novější SSD Intel. Samozřejmě jsem vyházel předinstalovaný OS s haldou bordelu a instaloval čisté Windows 7 64-bit EN, i když jsem do nich nakonec docela dost původních driverů a utilit Lenovo doinstaloval (neinstaloval jsem třeba Toolbox).

Po týdnu nepřílliš intenzivního používání jsou moje první dojmy tyto:

+ váha – važí zhruba 1.5kg, což je prostě bezva,

+ DVD-RW v dockovací stanici je fajn, určitě sebou nepotřebuji vláčet optickou mechaniku, ale doma, kde jiný počítač nemám, se hodí,

+ výdrž baterie vypadá na něco kolem 4-5 hodin podle jasu displaye; UPDATE: Dnes jsem s vypnutou WiFi pracoval 4 hod v kuse s Wordem a baterie za tu dobu klesla ze 100 na 50%. Výdrž tedy vypadá dost dobře…

+ konektivita – WiFi chodí luxusně a vestavěné 3G jsem zkoušel jen krátce, ale v kanceláři jsem natočil tuším 1800/400kbps na Vodafone

+ rychlost – velmi slušná

+ nezahřívá se

+/- klávesnice – má plnou velikost a dobré rozložení, je ale dost tvrdá a ještě jsem si nezvykl na rozložení (Esc, PgUp/Down, Fn/Ctrl), zatím s ní dost bojuji, uvidíme

+/- provedení – jde o ThinkPad klasiku, takže matná kvalita náchylná na poškrábání, baterie potřebovala podlepit, aby se nekvrdlala, prostě obvyklý bytelný ThinkPad s obvyklými mouchami. Překvapilo mě jenom nepřesvedčivé spasování víka, které se při otevírání kroutí a rozevírá

+/- display – displaye ThinkPadů nepatří mezi elitu, nicméně žádné problémy nepozoruji a zatím jsem jen subjektivně trochu bojoval s ClearType, nebo spíše té rozmazanosti písma v Lenovo utilitách

– malý touchpad – díky horním tlačítkům pro trackpoint na touchpad moc místa nezbylo

– chybí samostatné tlačítko na zapnutí/vypnutí WiFi, buď se dá vypínat společně s 3G/BT, nebo na více kliknutí, což bylo u Aceru lepší

– nemá HDMI

– při připojení na monitor přes dockovací stanici nepříjemně pobrukuje při aktivitě (jako kdyby vrčel disk, kdyby to nebylo SSD), bez docku jsem to ještě nezkoušel, ale při noční práci to v úplném tichu nepříjemně ruší

– při připojení na monitor přes dokovací stanici obraz velmi často na monitoru problikává, nějak se nechytá synchronizace, nebo co. Dělá to při DVI i při VGA připojení. Spolehlivý workaround: Stačí na chviličku přepnout režim na Duplicate (Win+P) a pak zase zpět na Projector only. Blikání přestane.

– dokud si nevypnete Power Management na grafickém rozhraní (Intel), tak při práci na baterie občas při změně obsahu obrazovky LCD najednou velmi přepálí kontrast (jestli si dobře pamatuju projev). Hlásí to davy uživatelů a jediným nalezeným workaroundem je vypnutí PM na grafice.

…uvidíme, jak se osvědčí dále.

iPad: Vypadávání DNS po probuzení ze spánku

Můj první problém s manželky iPadem spočíval v tom, že po probuzení ze spánku nefungovalo DNS resolvování.

Přímý přístup přes IP adresy šel. Pomáhalo odpojení/připojení do sítě nebo restart.

Co jsem tak vygooglil, tak je to known-issue a první doporučení vedlo na nastavení OpenDNS serverů místo vlastního lokálního DNS. To nepomohlo, pomohlo až vypnutí Automatic Brightness displaye(doufám definitivně, zatím to chodí, DNS jsem vrátil na svou obvyklou).

Prý je stejný problém i na iPhonech, nevím, ten nemám.

Windows Live Sync (ex-Mesh): Synchronizace nastavení Visual Studia, ale i Office (Outlook podpisů, auto-correct, atp.)

Poměrně krátce si hraju s Windows Live Sync Beta (dříve Live Mesh) a už mě zaujali dvě příjemné možnosti:

  • synchronizace Office-nastavení – včetně Outlook podpisů, nastavení auto-correct options a dalších věcí, které mě vždy vytáčí do běla, že je musím znovu a znovu nastavovat na čistých instalacích. Synchronizace Office je ve Windows Live Sync vestavěná, stačí ji jen zapnout
  • synchronizace nastavení Visual Studia – stačí použít synchronizaci souborů – nastavení Visual Studia se ukládá do souboru, který určíte v Options / Import and Export Settings / Automatically save my settings to this file: […]. Nasměrujte si soubor do samostatné složky a tu synchronizujte mezi počítači.

Live Sync Beta mi přijde nějaká chudší, než byl Mesh, ale svůj účel snad splní stejně a možná časem i lépe.

Exchange Shell: Skript pro přesun public folders mezi dvěma Exchange servery (Replicas)

Potřebovali jsme přesunout veřejné složky (Public Folders) mezi dvěma Exchange servery, konkrétně z 2007 na 2010.

Postupů je na netu k nalezení mraky, nicméně obecně je jako jeden z kroků potřeba naklikat všem složkám nebo naskriptovat změnu Replication z jednoho serveru na druhý (z jedné DB na druhou).

Mělo by to jít pomocí skriptu MoveAllReplicas.ps1, z kterého se volá ReplaceReplicationOnPFRecursive.ps1, nicméně nám se tyto skripty v připravené podobě rozchodit nepodařilo.

Inspirovali jsme se však jejich obsahem a tak vzniknul níže uvedený primitivní skript na přenastavení všech replikací na cílový server:

$dbNew = get-publicfolderdatabase -server $newServer -erroraction Stop
$getpfcmd = "get-publicfolder -server $oldServer -identity $TopPublicFolder -Recurse -resultsize unlimited"

$tempik = invoke-expression $getpfcmd
$tempik | foreach {
    $_.Name;
    $_.Replicas.Clear();
    $_.Replicas += $dbNew.Identity;

    $_ | set-publicfolder -server $oldServer -replicas $_.Replicas
}

…výše uvádím snippet kódu, který představuje podstatnou výkonnou část. Před spuštěním je potřeba nastavit $oldServer, $newServer a $topPubliFolder (obvykle na zpětné lomítko).

ASP.NET Device Filters

Nedávno se mi připomněla jedna starší lahůdka (čti obskurnost, za kterou může ten zpropadený svět heterogenních browserů) – Device Filters. Dovolím si tedy připomenout:

Jde o víceméně elegantní deklaratorní zápis, jak nastavovat různé hodnoty jednotlivých properties controlů a direktiv v ASP.NET v závislosti na browseru. Syntaxe je jednoduchá:

<asp:Label IE:Text="Používáte Internet Explorer" Mozilla:Text="Používáte Firefox" PIE:Text="Používáte Pocket IE" Text="Používáte Buchvíco" runat="server" />

Není to jen o properties controlů, dá se to použít i pro direktivy, takže například pro <%@ Page %> lze nastavit MasterPageFile či Theme. Rozpoznávané browsery se řídí browser-definition-files (App_Browsers, browserCaps).

ASP.NET Sprite and Image Optimization Framework

Že Microsoft ASP.NET team si už delší dobu hraje s věcmi kolem CSS Sprites se vědělo už dlouho. Nakonec nečekají na další release ASP.NET a uvolnili svůj ASP.NET Sprite and Image Optimization Framework už nyní (na Codeplex). Pokud tedy chcete na svých webech optimalizovat rychlost načítání a zobrazování obrázků, určitě doporučuji Vaší pozornosti. Kdo netušíte, o co jde, potom viz instruktážní video (ve zkratce jde o slučování několika obrázků do jednoho a zobrazování výřezů z něj na Vaší webové stránce pomocí CSS stylování s background-image).

VS2010 – Lokalizace do češtiny ke stažení

V rámci snahy o zpřístupnění vývojářských nástrojům „širokým masám“ uvedl dnes Microsoft další ztřeštěnost -Jazykovou sadu pro češtinu, která Vám umožní přepnout prostředí Visual Studia 2010 Professional do češtiny. Lokalizační sada je ke stažení ze stránek MSDN.cz.

Tož přeji hodně štěstí těm, co se při svém prvním sestavení řešení (build solution) dostanou až k sestavení (assembly). Osobně odmítám komunikovat s kýmkoliv, kdo by na mě zkoušel tento kryptojazyk použít a důrazně vyzývám všechny, aby si před komunikací se mnou zjistili anglickou podobu, chtějí-li se vyhnout mému podezření, že jsou marťani.

Osobně mi jako výrazně lepší nápad pro jazykově méně vybavené přišel nástroj CLIP (Captions Language Interface Pack) pro VS2008, který zobrazoval překlady až na najetí myši na danou část UI.