Archive | Listopad 2012

Systemy kontroli wersji

W mojej pierwszej pracy, gdzie byłem zatrudniony na stanowisku programisty, pracowałem w niewielkim zespole nad desktopową aplikacją tworzoną za pomocą Delphi 1 (Nie, nie jestem aż taki stary :) firma rozwijała swój leciwy produkt, mimo, że na rynku od wielu lat dostępne były 32-bitowe wersje Delphi).

Byłem najmłodszym programistą w zespole, moim najbardziej niewdzięcznym zadaniem było łączenie wersji kodu od różnych developerów w jedną – aktualną i obowiązującą całość. Co kilka dni otrzymywałem spakowane ZIPem pliki źródłowe, które następnie pracowicie porównywałem, i generowałem scaloną wersję. Taka operacja trwała kilka godzin, i jak łatwo sie domyślić – o błąd było bardzo łatwo.

Jakiś czas później wyjechałem do Wielkiej Brytanii, i rozpocząłem pracę w małym studiu developerskim. Tu poznałem Subversion. Natychmiast się zakochałem w tym środowisku. To co kiedyś pracowicie łączyłem „na piechotę” – robiło się samo, bez większych problemów.

Ostatnio odkryłem GITa, rozproszone repozytoria, lokalne commity, no i przede wszystkim prosty i bardzo szybki branching –  wszystkie te funkcje bardzo pomagają podczas programowania. Dzisiaj już nie wyobrażam sobie kodowania bez wsparcia SCM.

Jeśli ostatnie 10 lat rozwoju narzędzi developerskich przesiedziałeś pod kamieniem, i podczas codzinej pracy nad kodem nie korzystasz z żadnego systemu kontoli wersji, to czas najwyższy wyjść i  zacząć korzystać.

Już niebawem kolejny wpis – GIT w praktyce

ASP.MVC Autoryzacja i autentykacja Windows

Tworząc stronę na użytek firmy, warto zastanowić się nad autoryzacją i autentykacją Windows. Plusy takiego rozwiązania są oczywiste – jedno hasło do wszystkiego.

Uruchomienie autoryzacji jest bardzo proste – można utworzyć nowy projekt Asp.NET MVC, i wybrać typ Intranet Application.
Albo zmodyfikować istniejący projekt, i:

W web.config dodać:

<System.web>
...
    <authentication mode="Windows" />

    <authorization>
      <deny users="?" />
    </authorization>
...

Następnie klikamy na nasz projekt Asp.NET MVC i wciskamy F4 – powinny pojawić się właściwości, ustawiamy je następująco:

Anonymous Authentication=Disabled
Windows Authentication=Enabled

I to wszystko. Pozostaje jeszcze wyczyścić kod, i usunąć starą autoryzację.

Teraz jeśli użytkownik jest zalogowany, to wchodząc na naszą stronę za pomocą Internet Explorera, automatycznie się zaloguje także na stronę.

Jeśli używa innej przeglądarki, pojawi się modalne okienko z żądaniem loginu i hasła. Twój kod nie będzie miał dostępu do hasła (nazwę użytkownika można pobrać za pomocą właściwości User.Identity.Name), wszystkie operacje wykonywane są w „tle”.

Mając uruchomione te wszystkie fajne funkcje możemy przystąpić do modyfikowania akcji kontrolerów, i określania kto ma do nich dostęp. Można użyć znanego chyba wszystkim atrybutu [Authorize] – jeśli użytkownik się nie zalogował, to pokaże się ponownie okienko logowania.

Bardzo przydatną opcją jest oparcie się na grupach Windows. Możemy utworzyć sobie specjalne grupy np: admin_systemux, user_systemux, przypisać do nich niektórych użytkowników Windows.
Teraz wystarczy udekorować odpowiednio akcje:

[Authorize(Roles="admin_systemux")]
public ActionResult About()
{
...