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()
{
...
Reklamy

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s

%d blogerów lubi to: