Nasze aplikacje często potrzebują informacji na temat np. uruchomionych procesów lub ilość podłączonych urządzeń magazynujących itp. Ponad to często może okazać się przydatne zareagowanie na uruchomienie jakiegoś procesu. Do realizacji tego typu zadań możemy wykorzystać w .NET Framework klasy Process czy też Windows Management Instrumentation (WMI). Analiza procesów Do wyświetlenia wszystkich aktualnie uruchomionych procesów możemy użyć statycznej metody Process.GetProcesses. Poniższy kod przedstawia wyk...
Strona głównaUżytkownik
luk4444 | użytkownik
CAS (Code access security) to system zabezpieczeń, który pozwala zarządzać dostępem programów do zasobów systemowych. Jest to system dający znacznie więcej możliwości konfiguracji, niż standardowe zarządzanie rolami (RBS, role-based security). Możemy np. określić, czy dana aplikacja może wysyłać zapytania do Internetu, czy otwierać pliki lokalne. Niestety mechanizm ograniczony jest do aplikacji zarządzanych (ang. managed) .NET Framework, pozostałe ograniczone są tylko przez uprawnienia systemu operacyjne...
Powody do używania CAS Assembly Declarations Głównie z trzech powodów używamy CAS Assembly Declarations: 1. Aby zapewnić, że runtime nigdy nie uruchomi aplikacji bez uprawnień do pożądanych zasobów. 2. Do stworzenia tzw. “piaskownicy” dla naszej aplikacji po to, aby atakujący nie mógł nią manipulować 3. Aby zweryfikować, że aplikacja może być uruchomiona z ograniczeniami dostępu CASKlasy dla uprawnień CAS CAS może ograniczyć dostęp do różnego rodzaju zasobów: plików, folderów, drukarek, dostępu ...
CAS może być używany deklaratywnie wtedy kod jest poddany kontroli bezpieczeństwa już na etapie kompilacji przed uruchomieniem kodu lub imperatywnie wtedy kod sam wykonuję kontrolę bezpieczeństwa i decyduje co ma się zdarzyć podczas niepowodzenia. W poprzedniej lekcji było pokazane jak chronić całe assembly. Ale można użyć również CAS do chronienia pojedynczej metody bądź wyodrębnionego kodu.Typy metod Permission Requests Mimo, że są trzy typy deklaracji CAS assembly ( RequestOptional, RequestMinimum, an...
W tej lekcji nauczymy się podstaw ACL jego sposobu analizowania i konfigurowania z poziomu aplikacji.Co to jest Lista Discretionary Access Control A discretionary access control list (DACL) jest mechanizmem do autoryzacji, który identyfikuje użytkowników oraz grupy, które mają dostęp lub jego brak do obiektu. Windows Vista oraz Windows Server 2008, tak jak i wszystkie poprzednie, śledzą przywileje użytkowników, którzy mają dostęp do zasobów za pomocą DACL. Jeśli DACL nie identyfikuje jednoznacznie u...
Framework .NET pozwala korzystać z systemowego systemu zabezpieczeń opartego na rolach (ang. RBS, Role-based security), Active Directory, lub własnych mechanizmów. Dzięki temu możemy kontrolować do jakich zasobów, czy funkcji użytkownik ma dostęp. Programowo możemy zarządzać autoryzacją (ang. authorization) i autentykacją użytkowników (ang. authentication):Autentykacja – weryfikuje tożsamość użytkownika, określa to kim jest użytkownik; zwykle zachodzi na podstawie nazwy użytkownika i hasła, mogą do tego ...
Nie od dziś wiadomo, że dane (szczególnie te poufne) należy zabezpieczać i zapobiec dostaniu się ich w niepowołane ręce. .NET Framework udostępnia nam klasy które pozwalają zaimplementować szyfrowanie symetryczne, asymetryczne, hashing czy też podpis elektroniczny. Spróbujemy dzisiaj omówić sobie po krótce każdy ze sposobów.Szyfrowanie i deszyfrowanie danych symetrycznie za pomocą klucza Kluczowym elementem w tym szyfrowaniu jest klucz. Klucz musi być znany nadawcy do zaszyfrowania informacji jak i odbi...
Framework .NET zapewnia zarządzalne odpowiedniki dla niemal każdej funkcji Win32, którą chcielibyśmy wywołać. Jednak duża ilość istniejącego kodu niezarządzalnego (ang. unmanaged) zmusza osoby tworzące oprogramowanie, aby znały metody korzystania z obiektów COM (Component Object Model). Jako przykładem posłużymy się Microsoft Speech Object Library (%Windir%\System32\Speech\Common\Sapi.dll) – biblioteką dającą dostęp do systemowego mechanizmu syntezy mowy.Niech nasza aplikacja przemówi! Aplikacja może do ...
E-mail jest popularnym mechanizmem komunikacji. Framework .NET zawiera przestrzeń nazw System.Net.Mail, która zawiera klasy wspomagające tworzenie i wysyłanie wiadomości e-mail. W tym artykule skupimy się wyłącznie na tworzeniu wiadomości. Następna lekcja będzie o wysyłaniu. Podstawowa wiadomość Aby wysłać wiadomość należy utworzyć obiekt MailMessage, określić nadawcę, odbiorcę, tytuł (ang. subject) i treść wiadomość (ang. body). Klasa MailMessage zawiera kilka konstruktorów. Najprostszy pozwala nam utw...
Wytyczne dotyczące udostępniania typów .NET dla aplikacji COM Kiedy planujemy udostępniać typy .NET w aplikacjach COM, powinniśmy trzymać się poniższych wytycznych:Typy, metody, właściwości, pola oraz zdarzenia muszą być publiczne.Klasy powinny wyraźnie implementować interfejsy. Możemy również pozwolić aby COM generował nam interfejs automatycznieTypy powinny mieć domyślny, bezparametrowy konstruktor. Należy unikać sparametryzowanych konstruktorówTypy nie mogą być abstrakcyjneNależy unikać statycznych me...
Dzisiaj powiemy sobie o używaniu refleksji, tworzeniu instancji typów, wywoływanie metod do dynamicznego ładowania pakietów, ładowaniu pakietów itd. Przez większość czasu mamy bezpośredni dostęp do typów w trakcie pisania kodu. Są jednak chwilę kiedy warto byłoby załadować assembly, typy i metody zawarte w nim dynamicznie. Na przykład aplikacja, która obsługuje wtyczki powinna być napisana tak aby uruchomić plug-in dynamicznie nawet gdy plug-in nie jest dostępny, podczas opracowywania takiego wniosku.Jak...
Jak wysłać wiadomość Po utworzeniu wiadomości, musimy wysłać ją przez serwer SMTP, który prześle wiadomość do odbiorcy. W .NET klasą, która reprezentuje serwer SMTP jest klasa SmtpClient. Aby wysłać wiadomość wywołujemy SmtpClient.Send. Najczęściej wysyłanie wiadomości jest tak proste jak w poniższym przykładzie(gdzie smtp.contoso.com jest nazwą lokalnego serwera SMTP): 1: MailMessage m = new MailMessage 2: ("[email protected]", 3:"[email protected]", 4:"Quarterly data report.", 5:"Hello, wo...
Globalizacja to proces tworzenia aplikacji która wspomaga nasz “lokalny” interfejs. Przez lokalny należy rozumieć kulturę wyświetlania liczb, dat czy innych informacji. .NET Framework jest w stanie zrobić większość rzeczy za użytkownika, my jednak musimy zrozumieć jak korzystać z przewidzianych narzędzi. Na przykład w Stanach Zjednoczonych separatorem “miejsc po przecinku” (mówiąc po polsku ;) )jest kropka.Ustawienia kultury Możemy użyć dwóch właściwości do ustawienia kultury z jakiej chcemy skorzystać w...
Jak zapewne zauważyłeś od jakiegoś czasu trzy razy w tygodniu pojawiały się wpisy, których tytuły zaczynały się od 70-536. Kamil Lemański, Daniel Jarzynka oraz Dawid Tulski przygotowując się do tego egzaminu tworzyli wpisy podsumowujące kolejne lekcje z Training Kita. W tym miejsu zebrałem wszystkie artykuły, które się pojawiły (pojawiły się już wszystkie lekcje z drugiej edycji książki):Podstawy FrameworkuUżycie typów wartościowychUżycie popularnych typów referencyjnychTworzenie klasKonwersja między typ...
Artykuł pochodzi w serii przygotowań do egzaminu 70-562 ASP.NET. Przed przystąpieniem do poznawania technologii ASP.NET 3.5 oraz tworzenia witryn internetowych w niej (również w każdej innej technologii do tworzenia aplikacji www), warto zapoznać się z głównymi elementami wykorzystywanymi w udostępnianiu użytkownikowi stron. Aplikacje internetowe są klasycznym przykładem architektury klient – serwer. Użytkownik korzysta z przeglądarki internetowej (klient). Za pomocą Internetu (przy wykorzystaniu proto...
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Począwszy od .NET Framework w wersji 3.0 WCF, czyli Windows Communication Foundation, jest jego częścią. Możemy korzystać z niego w celu budowania aplikacji, których architektura składa się z wielu połączonych ze sobą serwisów, które wzajemnie się komunikują. Zaczynając przygodę z WCF zaczniemy od wyjaśnienia kontraktów opisujących zachowanie(ang. behaviour) serwisów, czyli opisu tego z czym możemy się komuniko...
Programowanie rozproszone 5360 dni, 3 godziny, 5 minut temu 50 źrodło rozwiń
Artykuł pochodzi w serii przygotowań do egzaminu 70-562 ASP.NET. Witajcie w moim pierwszym artykule, w nowej serii wpisów. Dziś troszkę podstaw. Powiemy o tworzeniu nowego projektu w Visual Studio, dodawaniu nowych stron itp.Tworzenie strony internetowej Visual Studio 2008 pozwala nam stworzyć projekt typu Web Site, z rozróżnieniem tego w jaki sposób chcemy mieć dostęp do zawartości strony. Możemy stworzyć projekt Web podłączony do systemu plików na naszym komputerze, na serwerze IIS lub FTP. Wybór odpow...
ASP.NET udostępnia programiście dwa typu kontrolek serwerowych, które może wykorzystać w swoich aplikacjach webowych: HTML Controls oraz Web Controls. Ale zanim opiszę różnice między nimi, warto zapoznać się z cyklem życia strony ASP.NET.View State ASP.NET poszczególne żądania do strony traktuje jako osobne i nie przechowuje żadnych informacji pomiędzy kolejnymi odsłonami (są różne mechanizmy zapisywania stanu, które zostaną opisane w późniejszych artykułach). ASP.NET wykorzystuje mechanizm View State, k...
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Z poprzedniej lekcji wiemy jak utworzyć usługę i jak zdefiniować jej część “behawioralną”, czyli poszczególne metody serwisu. Dzisiaj dowiemy się jak zdefiniować własne typy danych i przekazywać je przez serwis.Kontrakt danych Kontrakt danych definiuje nam format, strukturę i sposób serializacji przesyłanych danych. Rozbudujmy nasz kalkulator o możliwość wykonywania dowolnych działań dwuargumentowych. Najpierw ...
Programowanie rozproszone 5358 dni, 11 godzin, 59 minut temu 50 źrodło rozwiń
Artykuł pochodzi w serii przygotowań do egzaminu 70-562 ASP.NET. Możemy użyć plików konfiguracyjnych do określenie ustawień naszej strony. Ustawienia te są przechowywane w odrębnym pliku, oddzielonym od kodu aplikacji i zapisane w XML. Zazwyczaj storna internetowa zawiera jeden plik web.config który jest w głównym katalogu aplikacji. Jednak nic nie stoi na przeszkodzie aby umieścić ich wiele i będą zarządzały ustawieniami aplikacji na różnych poziomach.Zrozumieć hierarchie pliku konfiguracyjnego Plik kon...