februari 2006


Daniel Fisher has an excellent article describing how to create a waitpage for ASP.NET applications.

 

I ASP.NET 2.0 kan man skapa websites som består av Web Parts, vilket principiellt fungerar på samma sätt som Web parts fungerar i Sharepoint.

Nu är det så att jag har installerat SQL Server 2005 Developer Edition på min dator, och sedan Visual Studio 2005 (då inte med SQL Server Express).

När jag nu skulle skapa en webbapplikation med WebParts fick jag ett felmeddelande:

SQLExpress database file auto-creation error

Och sen en hel drös ed förslag på vad som kunde vara fel. Sätta behörighet i App_Data katalogen så webbserven kan skapa eller komma åt SQL-filerna där. Jaha tänker jag, fint, den skall alltså kunna skapa upp nån databas själv. Men så är inte fallet.

WebParts i ASP.NET 2.0 måste ha en databas för att det skall fungera att personifiera hur en webbsida med WebParts skall se ut för en specifik användare. Och när du lägger upp WebParts och bara kör antar applikationen att du har SQl Server Express installerat, och vill skapa och attacha en databas som fil.

Nu är det ju så att det är endast med SQL Server Express det fungerar att attacha filer rakt av. Så om man har en annan databas (som t.ex. Developer Edition eller även SQL Server 2000) måste man göra lite handgrepp som man kan hitta mera information om det här.

Ett av problemen med alla nya ‘webbapplikationer’ som börjar poppa upp i form av Gadgets, Widgets och vad dom nu heter på alla ställen, är att jag inte längre har samma kontroll på vart och hur mitt data sparas ner.

En populär ‘xxxget’ är exempelvis en som låter dig titta i din mailbox på Gmail. Men vart sparas mina inloggningsuppgifter då? Jag är i normala fall skeptisk till att låta mina inloggninsguppgifter ligga på servrar ute på internet, men nu blir jag än mer skeptisk. Jag vet ju ofta inte ens vem som har gjort applikationen. Jag vet vem som tillhandahåller själva siten, men sen kan man ju själv göra gadgets till siterna. Och då är det ju upp till den som gör den vart och hur det sparas ner. Och vad jag har sätt finns det inget standardiserad sätt för mig att ta reda på hur mitt data behandlas.

Det enda jag är säker på, är att det inte sparas på *min* dator. 🙂 För då skulle det ju inte vara någon mening i att konfigurera upp en sådan sida.

Men alla dessa applikationer är ju en fröjd att använda. Så jag hoppas det kommer något sätt där jag kan säkerställa att det data jag spar ner i applikationen behandlas enligt mina ‘önskemål’. För jag vill absolut inte vara utan.

I AD finns på användarna ett atribut som heter ‘userAccountControl’. Denna attribut verkar inte finnas på användare i ADAM. Jag vet heller inte vid nuvarande tidpunkt om det går att lägga till denna atribut.

‘accountExpires’ finns heller inte som standard på en användare i ADAM, vilket det däremot gör i AD. Denna går dock att lägga till i ADAM. Om man använder DirectoryServices och plockar ut Nativeobject ur ett DirectoryEntry kan man söka fram detta datum genom att anropa natObj.AccountExpirationDate. Det funkar även om man lägger till attributet i ADAM.

Funktionen natObj.AccountDisabled som skall returnera true eller false verkar däremot hämta sitt svar från attributet ‘userAccountControl’, och det verkar som sagt inte finnas någon motsvarighet i ADAM. Där skall man i stället använda attributet ‘msDS-UserAccountDisabled’ som finns som standard på användare.

Det känns som att innan jag har löst det här kommer jag stöta på flera överraskningar av det här slaget. Hoppas jag hittar nån information som beskriver alla dessa skillnader……

Pass på att lära lite om SQL Server 2005 medans Microsoft erbjuder onlinekurser gratis!

 https://www.microsoftelearning.com/sqlserver2005/default.aspx

Att skapa en användare och sätta lösenordet i ADAM gör man med enkelhet med hjälp av ADAM-adsiedit. Men om man vill sätta lösenordet med hjälp av script stöter man gärna på lite stök.

1. ”The active directory property cannot be found in the cache”

När jag provade sätta lösenord med hjälp av ‘SetPassword’ fick jag ovanstående fel. Felet är enligt olika källor på internet missvisande och felet är troligen i stället att ADAM inte tycker att den anv. jag kör med kan godkännas med de förutsättningar jag ger. Den har alltså för hög säkerhetsnivå. Tydligen kan man sätta upp ADAM att köra SSL för at lösa det.

Men det finns en annan lösning: Sätt vilken port som skall användas och att lösenordet kan skickas i klartext, så fungerar det. Följande kod borde då funka (urklipp):

Const ADS_OPTION_PASSWORD_PORTNUMBER As Long = 6
Const ADS_OPTION_PASSWORD_METHOD As Long = 7
Const ADS_PASSWORD_ENCODE_REQUIRE_SSL As Integer = 0
Const ADS_PASSWORD_ENCODE_CLEAR As Integer = 1
entryU.Invoke(”setOption”, New Object() {ADS_OPTION_PASSWORD_PORTNUMBER, 389})
entryU.Invoke(”setOption”, New Object() {ADS_OPTION_PASSWORD_METHOD, ADS_PASSWORD_ENCODE_CLEAR})
entryU.Invoke(”setPassword”, New Object() {CreatePassword()})


2. ”Bad variable type” Problemet är att då får jag felet ”Bad variable type”. Det här felet beror då på att jag kör med Windows 2000, och den version av ADSI som finns med här har ett fel som resulterar i det här. Och helt riktigt, kör jag samma kod på en Windows 2003 fungerar det felfritt. Det skall finnas en hotfix till Windows 2000, men jag har inte brytt mig om att hämta ner den eftersom jag ändå skall köra på Windows 2003. Du kan läsa mera om sista felet på

http://groups.google.com/group/microsoft.public.adsi.general/browse_thread/thread/68a514db961b6051/46f72e8189ed9c34?lnk=st&q=%22bad+variable+type%22+%2Bsetoption&rnum=1&hl=en#46f72e8189ed9c34

Köper man EN licens för Windows 2003 R2 Enterprise Edition får man med Virtual Server 2005 + att man kan köra upp till 4 virtuella instanser av Windows 2003 R2 Enterprise Edition på samma maskin! Det måste man väl säga är förmånligt.

Annars finns det ju även open-source versioner av virtualiseringssystem också, till exempel Xen.

Nu finns det även signaler som tyder på att Microsoft tänker bygga in stöd för virtualisering i operativet (Windows Longhorn). Det kan verkligen ge en boost för MS Virtual Server, och det kan den behöva.
Så vad skall VMWare göra dårå? Jo, det blir till att ge bort saker då. Enligt rykten skall man skapa en ny version av VMWare GSX Server som skall heta VMWare Server och släppa den fritt. Några dagar till så vet vi! 🙂

Dom har ju redan gjort VMWare Player som är en gratisversion för personligt bruk, så omöjligt är det ju inte.

Nästa sida »