1. C# i uruchamianie procesu z uprawnieniami administratora

    Czasami zachodzi potrzeba wykonania jakiegoś działania na obiektach do których obecnie zalogowany użytkownik nie ma uprawnień. Rozwiązaniem tego problemu jest elewacja uprawnień procesu.

    Niestety nie jest możliwa elewacja uprawnień procesu z którego chcemy wykonać kod, stąd konieczne jest wystartowanie całkiem nowego procesu z parametrem sugerującym systemowi elewację uprawnień (gdy UAC jest wyłączone) lub wyświetlenie komunikatu z prośbą o zalogowanie na konto administracyjne (gdy UAC działa).

    We wpisie mała ściągawka jak to zrobić.

    Czytaj dalej »

  2. WCF Data Services i DataGridView – wyświetlanie relacji

    Często zachodzi potrzeba wyświetlenia danych pobranych z WCF Data Service w DataGridView. O ile wyświetlanie pól typów podstawowych nie stanowi żadnego problemu i dzieje się to automatycznie po przypisaniu DataSource do kontrolki DataGridView, o tyle jeśli pobieramy złożoną encję, która zawiera relację, trzeba pamiętać o kilku dodatkowych rzeczach.

    Czytaj dalej »

  3. ASP.NET MVC i subdomeny językowe

    Istnieje kilka podejść do kwestii wyboru wersji językowej aplikacji stworzonej w ASP.NET MVC.
    Między innymi można odczytywać jaki język preferuje przeglądarka użytkownika, tutaj powstaje jednak problem, gdy chcemy uruchomić wersję językową inną niż przeglądarka (bo trzeba się bawić w przechowywanie tego w sesji lub ciasteczkach).

    Osobiście jestem „fanem” subdomen językowych – czyli dla jednej aplikacji tworzymy bindingi dla hostów w stylu „pl.luktom.net”, „en.luktom.net”, „de.luktom.net”.
    Rozwiązanie to jest szybkie w implementacji – ot, wpis w DNSie i ustawienie bindingów – góra kilka minut.
    Poza tym daje nam elastyczność związaną z możliwością rozbicia obsługi poszczególnych wersji językowych aplikacji na kilka serwerów – dzięki czemu np. użytkownicy z Japonii zostaną już na poziomie DNS skierowani do serwera w Japonii, a użytkownicy z Niemiec mogą zostać przekierowani do serwera w Europie (ale to jest osobny temat, na inny artykuł).

    W dalszej części prezentuję kod wybierający kulturę w zależności od nazwy hosta z subdomeną językową.

    Czytaj dalej »