Może zdarzyć się tak, że jedno żądanie zostanie wysłane do usługi kilka razy. Fajnie więc by było zabezpieczyć system przed taką ewentualnością. W nagłówku każdego żądania przekazywany jest unikalny identyfikator żądania. W momencie walidacji nagłówka system sprawdza identyfikator z pomocą jedno-instancjowego obiektu SafeContainer. Każdy identyfikator przechowywany jest w kontenerze prze n-minut. Po upływie tego czasu usuwane są "stare" identyfikatory. Jak na razie nie znalazłem sensowniejszego rozwiązan...
Programowanie rozproszone 5190 dni, 4 godziny, 50 minut temu 61 źrodło rozwiń
Niniejszy post jest pewnego rodzaju kontynuacją cieszącego się popularnością artykułu pod tytułem: „Jak uczyć się C#?”. Chciałbym wskazać kolejną garść rad, które nasunęły mi się od czasu napisania poprzedniego artykułu. Tym razem jednak nie jest on raczej skierowany do początkujących programistów, a raczej bardziej zaawansowanych czytelników. Dlaczego? Otóż chciałem dziś poruszyć dwie kwestie... Pierwszą są certyfikaty. Teraz już nie mal, że słyszę pytanie: ale co one mi dają?, czy ktoś na nie zwraca uw...
Tak jak zapowiadaliśmy wcześniej, mamy dla Was niespodziankę! Mamy do rozdania kilka nagród:2 vouchery na dowolny egzamin (ważne do 30 lipca 2010) 2 vouchery na kurs e-learningowy 6364: Visual Studio 2008 ASP.Net 3.5 (ważne do 30 czerwca 2010) Konkurs na najlepszą “zajawkę” Waszym zadaniem jest napisanie notki z linkami (70-536, 70-562, 70-503) do naszych kursów w jakimś blogu/serwisie. Najlepsza “zajawka” będzie nagrodzona: voucherem na egzamin, a kolejna voucherem na kurs e-learningowy. Termin zgłaszan...
Autor: Podczas wstępnego projektowania systemu, nad którym teraz pracuje, natknęliśmy się na dosyć interesujący problem. Polega on na tym, iż docelowe środowisko wdrożeniowe nie pozwala na komunikację między serwerem WWW, a serwerem aplikacyjnym. Komunikacja odwrotna jest możliwa. Sytuację tę przedstawia poniższy diagram. Te raczej mocne obostrzenia podyktowane są (podobno) polityką bezpieczeństwa. Niestety są one zabójcze dla naszego systemu, ...
Otóż jeśli tworzysz dowolnego klienta WCF i posiadasz system Windows 7 jest niemal pewne, że Twój klient nie uruchomi się na innych systemach operacyjnych! Dlaczego? Problem tkwi w elemencie extendedProtectionPolicy, który “potajemnie” dodawany jest do pliku App.config. Więc jeśli Tw...
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Ci z Was, którzy obsługiwali już wątki w .NET wiedzą, że nie jest to specjalnie skomplikowane. Najczęściej problemy występują przy obsłudze kontrolek Windows Forms, ponieważ ich właściwości mogą być zmieniane tylko w wątku, który je stworzył. Innym problemem jest wykorzystywanie lokalnej pamięci wątków do przechowywania informacji o kontekście, gdy proces nieoczekiwanie zmienia wątki, te dane mogą zniknąć. Z te...
Programowanie rozproszone 5274 dni, 5 godzin, 31 minut temu 76 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Współbieżność (ang. concurrency) w serwisie WCF występuje, kiedy jednocześnie więcej niż jedno wywołanie ma miejsce. Celem serwisu WCF jest przetwarzanie przychodzących żądań. Kiedy żądanie przychodzi do serwisu, serwis rozdziela (ang. dispatch) komunikaty na własne wątki, które brane są z puli wątków. Z każdym żądaniem powiązany jest obiekt serwisu – instancja klasy, która implementuje interfejs serwisu. W WCF...
Programowanie rozproszone 5275 dni, 15 godzin, 30 minut temu 78 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. No to wiemy już jak włączyć transakcje i co trzeba zrobić, zarówno po stronie serwisu jak i po stronie klienta, aby informacje o transakcji były przekazywane w obie strony. Dzisiaj dowiemy się więcej o obsłudze transakcji od strony kodu.Transakcje otoczenia W .NET Framework 2.0 w przestrzeni nazw System.Transaction zostały wprowadzone tzw. transakcje otoczenia (ang. Ambient Transactions). Polega to na tym, że ...
Programowanie rozproszone 5281 dni, 19 godzin, 22 minuty temu 67 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Podstawową funkcją transakcji jest zagwarantowanie zasad ACID:atomowości (ang. atomicity),spójności (ang. consistency),izolacji (ang. isolation),trwałości (ang. durability). Kiedy operacje związane z bazą odbywają się na wielu maszynach i wielu zbiorach danych, nie jest to takie proste. WCF wspomaga programistę w tym zadaniu. W celu spełnienia zasad ACID najczęstszym podejściem jest wykorzystanie dwuetapowego ...
Programowanie rozproszone 5282 dni, 6 godzin, 28 minut temu 39 źrodło rozwiń
· Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Wiemy już, że WCF może tworzyć oddzielne instancje klasy serwisu dla poszczególnych wywołań, dla poszczególnych sesji lub używać tylko jednej instancji do obsłużenia wszystkich klientów i ich wywołań. Dzisiaj dowiemy się jak zarządzać poszczególnymi instancjami klasy serwisu.Zabezpieczanie serwisu W rzeczywistym świecie głównym problemem są ataki typu “Odmowa usługi” (ang. Denial of service). Ataki te powoduj...
Programowanie rozproszone 5292 dni, 14 godzin, 45 minut temu 43 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. WCF jest odpowiedzialny za wiązanie przychodzącego komunikatu do określonej instancji serwisu. Tryb wystąpienia (ang. instance mode) określa związek pomiędzy klientem a instancją serwisu (np. czy istniejąca instancja serwisu jest w stanie przetworzyć żądanie). Ta lekcja przedstawia, różne rodzaje możliwych wystąpień, sposób w jaki są tworzone i konsekwencje wyborów. Dla InstanceContextMode dostępne są trzy wybo...
Programowanie rozproszone 5289 dni, 23 godziny, 51 minut temu 38 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Dzisiaj dowiemy się jak obsługiwać wyjątki serwisu po stronie klienta. WCF sygnalizuje wyjątki wykorzystując błędy SOAP. Wyróżniamy dwa typy błędów które mogą być wykorzystane: błędy typowane/deklarowane (ang. typed faults/declared SOAP faults) i beztypowe/niedeklarowane (ang. untyped faults/nondeclared SOAP faults).Odbieranie błędów Teoretycznie podczas korzystania z WCF’a możliwie jest występowanie wielu róż...
Programowanie rozproszone 5297 dni, 15 godzin, 19 minut temu 33 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Już mniej więcej wiemy czym dysponujemy w zakresie zabezpieczeń zarówno warstwy transportowej jak i samych wiadomości. No to teraz dowiemy się jak określać dostęp do określonych metod serwisu w zależności od tego kim jest ten, który się do niego podłączył.Autoryzacja Wiemy już km jest osobnik podłączony do serwisu, ale jeszcze nie wiemy co możemy mu udostępnić. W skład obsługi autoryzacji w WCFie wchodzą trzy e...
Programowanie rozproszone 5301 dni, 22 godziny, 5 minut temu 62 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. W tej lekcji zajmiemy się tematyką uwierzytelniania – określaniem kto jest kim (potwierdzaniem tożsamości), czy szyfrowaniem. Uwierzytelnianie będzie obejmowało zarówno weryfikację klienta przez serwis, jak i serwisu przez klienta. WCF oferuje następujące mechanizmy uwierzytelniania:Brak uwierzytelniania (No authentication) – dostęp anonimowy bez potwierdzania tożsamości,Uwierzytelnianie Windows (Windows authen...
Programowanie rozproszone 5304 dni, 21 godzin temu 69 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. W poprzedniej lekcji dowiedzieliśmy się jak zabezpieczyć komunikacje na poziomie protokołu transmisji.Podstawy WCF udostępnia trzy tryby zabezpieczeń: Transport (który poznaliśmy w poprzednim artykule), Message, TransportWithMessageCredential. Trzeci jest połączeniem dwóch poprzednich. Główną różnicą między zabezpieczeniami na poziomie transportu i na poziomie wiadomości jest to, że przy zabezpieczeniu na pozio...
Programowanie rozproszone 5310 dni, 6 godzin, 34 minuty temu 44 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Bezpieczeństwo tworzonych serwisów to podstawowa sprawa, która powinna odgrywać znaczącą już od samego początku projektu. W tym artykule skupimy się na bezpieczeństwie związanym z infrastrukturą – jak ograniczyć dostęp nieuwierzytelnionym użytkowników. Większość bindingów ma wbudowane możliwości związane z bezpieczeństwem – może to być SSL, IPsec, może też ich nie być wcale. wsDualHttpBinding to przykładowy bin...
Programowanie rozproszone 5312 dni, 5 godzin, 59 minut temu 42 źrodło rozwiń
Artykuł pochodzi w serii przygotowań do egzaminu 70-562 ASP.NET. W dzisiejszym artykule będzie na temat tworzenia i korzystania z web serwisów wykorzystujących technologię Windows Communication Foundation. Artykuł będzie wprowadzeniem do tej technologii. Jeśli ktoś będzie bardziej zainteresowany nią, to po więcej informacji odsyłam do równoległej serii artykułów przygotowujących do egzaminu właśnie z WCFa.
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Z opcji śledzenia aplikacji pozostało nam już tylko śledzenie “zdrowia” aplikacji, czyli liczniki wydajności i logowanie zdarzeń do Windows Event Log i Windows Management Instrumentation.Liczniki wydajności WCF zawiera dużą ilość wbudowanych liczników wydajności. Sama obsługa liczników, przeglądanie przy pomocy aplikacji Performance Monitor jak i modyfikowanie przy pomocy obiektów klasy PerformanceCounter wykra...
Programowanie rozproszone 5315 dni, 13 godzin, 14 minut temu 61 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. We wcześniejszych wpisach omówiony został mechanizm śledzenia (ang. tracing). Co jeśli pracujemy z serwisem, do którego kodu nie mamy dostępu, a nie zostało włączone w nim śledzenie? Rozwiązaniem może być wykorzystanie potoków WCF (ang. WCF pipeline). WCF jest rozszerzalny na wielu płaszczyznach. Kwestią do rozstrzygnięcia pozostaje tylko to, gdzie dodatkowa funkcjonalność powinna zostać wstrzyknięta. Rysunek ...
Programowanie rozproszone 5316 dni, 23 godziny temu 48 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Trochę po świętach mi sie przysnęło i dlatego artykuł pojawił sie dopiero o tej porze:) Znamy już podstawy konfigurowania “źródeł” i “słuchaczy” (jeśli chcemy stworzyć kilka źródeł dla jednego listenera to musimy użyć sekcji sharedListeners w pliku konfiguracyjnym – Kamil w poprzednim artykule to pominął, więc zainteresowanych odsyłamy do dokumentacji). Mamy informacje o przebiegu aplikacji. Jak teraz powiązać...
Programowanie rozproszone 5323 dni, 14 godzin, 8 minut temu 29 źrodło rozwiń