Poniedziałek, styczeń 30. 2012Niekonsekwencje w ASP.NETAutor:Paweł Goleń | Data:2012-01-30 21:48 | Kategorie:Security, WebApps | Brak komentarzy | Brak Śladów Na ostatnim spotkaniu OWASP w Krakowie jedna z prezentacji dotyczyła zapobiegania XSS w aplikacjach tworzonych w ASP.NET. Z prezentacją można zapoznać się t...
autor: Z dzisiejszej ankiety na FanPage'u dotnetomaniaka wynika, że sporo z nas na co dzień tworzy aplikacje ASP.NET (czy to WebForms czy też MVC). Zapewne zatem przyda nam się trochę darmowej wiedzy od Googla, co i jak wpływa na wyniki wyszukiwania i PR. Czy wiesz np. jak robot Google traktuje adresy z '-' a adresy z '_'? Jest jakaś różnica a może nie ma? Czy adresy z '/' na końcu są lepsze od tych bez? Czy dodawanie www do domeny ma jakieś znaczenie? Na te i inne pytania odpowie...
Definiując ścieżki w aplikacji ASP.NET MVC możemy zadać warunki (constraint) określające poprawność reguły dla parametru. Ja na przykład stosuję (między innymi) domyślnie constraint, który przepuszcza ścieżki pisane tylko małymi literami. Dzięki temu ustrzegam się przed zdublowanymi stronami indeksowanymi przez wyszukiwarki (wielkość liter ma znaczenie). Niestety dla jednego parametru można zadać tylko jeden warunek naraz. A co jeśli chcemy dołożyć kolejny? Można sobie pomóc korzystając z jednego, który ...
autor: We wpisie chciałem zwrócić uwagę na ważną sprawę, która nie jest taka oczywista: wywołanie metody FormsAuthentication.RedirectToLoginPage NIE kończy przetwarzania danej strony (informacja o tym została dodana do dokumentacji dopiero w wersji 3.5 w maju 2010)! Załóżmy, że użytkownik nie generuje ruchu na stronie przez jakiś czas, wystawiony ticket wygasa. Następnie np. naciska na submit buttona lub sortuje grida (triggeruje postback) – poniższy handler (i wszystko inne – walidacja, eventy) wykona s...
The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>). to paskudny błąd, który generowany jest przez klasę System.Web.UI.ControlCollection. Ma to miejsce przy próbie modyfikacji kolekcji, na przykład przez wywołanie Add(Control control), w przypadku kiedy kontrolki w niej zawarte korzystają z wyrażeń postaci <% ... %> lub <%= ... %>. Istnieje kilka sposób ominięcia tego problemu: Kod zawierający wyrażenia <% ... %> lub <%= ... %> umieścić w ...
Wielu niezależnych developerów i małe firmy korzystają z usług firm hostingowych ze względu na koszty. Na jednym serwerze może działać kilkadziesiąt oddzielnych stron. Ważna jest taka ich konfiguracja, aby żadna nie mogła zaszkodzić pozostałym i aby nie mogły odczytywać np. ciągów połączeń ze swoich web.configów. IIS pozwala firmom hostującym strony na zdefiniowanie poziomów zaufania, które określają operacje, które mogą być wykonywane (lista poniżej, zobacz także tą stronę). Istnieje także możliwość zde...
Hostingiem ASP na Webio.pl jestem bardzo mile zaskoczony. Niedrogi, a niezawodny i funkcjonalny. Problemem jest tylko automatyczne ubijanie nieaktywnej aplikacji po 20 minutach. Staje się to uciążliwe jeśli: start aplikacji długo trwa (pierwszy wizytujący będzie musiał czekać) potrzeb...
Jakiś czas temu był na tym blogu wpis dotyczący GridView i TemplateField, czyli sposobu wygodniejszą wizualizację i edycję danych tabelarycznych. W ten sposób łatwo można zamienić skomplikowane numeryczne identyfikatory (pochodzące z kluczy obcych) na dropdown-listy przedstawiające dane z innych tabel. Jednak co się stanie, gdy nasza kolumna z identyfikatorami dopuszcza wartości puste (NULL)? Otóż pojawi się wtedy „błąd serwera w aplikacji ....”. Zobaczmy jak sobie można z tym poradzić.Załóżmy, że pierwo...
Pracując nad wrzuceniem aplikacji klienckiej napisanej w ASP.NET wykorzystującej WCF natrafiłem na errory. W tym artykule chciałbym przedstawić sposoby ich rozwiązania.
autor: Wspominałem już kiedyś o FAKE - F# Make. Jest to narzędzie do wykonywania buildów, tak jak MSBuild, nAnt, Rake, psake czy wiele innych. Przez krótki czas (przy jednym projekcie) miałem okazję się nim pobawić, i bardzo przypadło mi do gustu. Dzisiaj pokażę jak można z niego skorzystać. Na początek jednak kilka linków: * FAKE na Githubie * blog autora * Google group * historia stabilnych buildów na CodeProject TeamCity - trzeba zalogować się jako gość, wybrać najnowszy build, i... ściągać najnowsz...
Po powiązaniu naszej kolekcji z repeaterem za pomocą polecenia DataBind() nasze dane wyświetlane są w wierszach. Zaimplementujmy na początek możliwość dodawania nowego wiersza. Wiersz ten nie może wyświetlać żadnego tekstu, ale jednocześnie repeater wyświetlać musi elementy znajdujące się w kolekcji. Jak uważni czytelnicy zapewne zauważą jest tu pewna sprzeczność. Klasa SimpleItem przechowuje bowiem identyfikator jak typ int, który nie jest nullowalny. Z tego powodu nie można wymagać prostego dodania p...
W kolejnych dwóch postach postaram opisać się moje zmagania z kontrolką ASP.NET o nazwie repeater. Z racji dużej liczby kodu, jaki będzie zamieszczony postanowiłem w niniejszym poście zrobić wprowadzenie, w drugim zaś objaśnić większość implementacji dla postawionego zadania. Zadaniem tym jest stworzenie funkcjonalności, dzięki której pola tekstowe na stronie mogłyby być dodawane w razie potrzeby w nieskończoność. Chcemy za...
Tworzymy prostą stronę w ASP .NET 4.0 cz.4 Nadszedł czas na ostatni, póki co, wpis z serii. Dziś pokaże Wam jak zrobić, żeby komentarze w naszej stronie dodawane były przy użyciu technologii ASP.NET AJAX. Zanim jednak przejdziemy do przykładu chciałbym przypomnieć czym jest AJAX. Definicja wyciągnięta z wikipedii brzmi:AJAX (ang. Asynchronous JavaScript and XML, asynchroniczny JavaScript i XML) – technologia tworzenia aplikacji internetowych, w której interakcja użytkownika z serwerem odbywa się bez ...
Każdy webmaster, który rozpoczyna swoją przygodę z tworzeniem stron od statycznego HTML, szybko przekonuje się, że nie jest to do końca, najlepsze wyjście. O ile w przypadku statycznych stron stworzonych na kształt wizytówek, albo stron stworzonych na specjalną okazję i nie wymagających późniejszej edycji może się sprawdzić (szybkie i tanie rozwiązanie), o tyle w przypadku stron wymagających zmienności w treści, czy też interakcji z użytkownikiem (Web 2.0 i te sprawy..) szybko okazuje się bezużyteczny. W...
Kolejny post dotyczący podstaw ASP.NET. Tym razem przyszedł czas na omówienie mechanizmu, jakim jest View state. Mechanizm ten jest wykorzystywany do przechowywania informacji, które muszą być podtrzymane pomiędzy kolejnymi postbackami. Informacja o przechowywanych danych jest zawarta w jednym lub więcej polach ukrytych (hidden fields) dołączanych do kodu html strony. Warto podkreślić, że View state przeznaczony je...
Przez długi okres czasu zmagałem się z problemami związanymi z liczbami zmiennoprzecinkowymi w ASP.NET MVC 2. Problemów tych było tak wiele, że nie sposób jest omówić ich tu wszystkich. W większości przypadków dotyczyły one odmiennego interpretowania separatora (czyli znaku oddzielającego część całkowitą liczby, od części ułamkowej) przez serwer oraz przez walidator. Próbowałem wielu różnych sposobów, żeby sobie z tym poradzić, lecz nic nie dawało satysfakcjonujących mnie rezultatów. Okazało się, że wyni...
Przeglądając różne tutoriale związane z ASP.NET MVC 2 napotkałem na pewien szczegół, który początkowo był dla mnie niezbyt zrozumiały. Mam tu na myśli znaczniki, których używamy do wyświetlania danych/kodu w widokach. Jak się okazuje, istnieją trzy typy tych znaczników, które są bardzo podobne do siebie, lecz stosuje się je w różnych sytuacjach. Poniżej krótka ściągawka, którą utworzyłem na bazie własnych doświadczeń....
4Sep/100ASP.NET sposób na zliczanie użytkowników online – StateServer Na temat dzisiejszego posta wybrałem problem z którym spotkałem się ostatnio w jednym z moich projektów. Mianowicie sprawa dotyczy zliczania ilości użytkowników, którzy w bieżącej chwili korzystają z naszej aplikacji. System miał już wcześniej zaimplementowaną taka funkcjonalność, ale z pewnych względów (o tym pó...
Autor: Kolejny "kliento-walidacyjno-mvcowy post". Tym razem zmagałem się z niedziałającą walidacją po wpięciu w DOM HTMLa zwróconego z serwera. Akcja kontrolera kończyła się instrukcją: 1: return PartialView(viewName, model) , a wstawianie w odpowiednie miejsce po stronie klienta odbywało się poprzez wywołanie jQuery.html(). Zdziwienie moje było o tyle duże, że kawałek DOMu uzyskiwany przez przeglądarkę najwyraźniej zawierał skrypt odpowiedzialny za walidację (inspected by Firebug).
Często zdarza się że w projekcie ASN.NET Ajax, oprócz Microsoft Ajax Library używamy jeszcze jQuery . Jest to genialna biblioteka, zachwalana przez wszystkich dot netowych guru jak Scott Gunthrie oraz Omar Al Zahir. Wcześniej czy później napotkamy metody document.ready() oraz pageLoad(). I powstaje pytanie czy można ich używać razem.Otóż TAK! Czy to to samo? Niekoniecznie. Pod maską document.ready() jest zdarzenie DOMContentLoaded, jeśli przeglądarka je obsługuje. Jeśli nie, wywoływane jest zdarzenie win...