Ana içeriğe atla

C# ile makina veya Domain kullanıcı bilgilerine erişim

Bu iş için Directory Service kütüphanesi içinde zaten alt seviyeli sınıflar mevcut idi ancak bir üst seviyeli sınıf ile işlemi daha kolay hale getirmişler :

string userName = string.Empty;
using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, "Your Domain Name")) 
{
    UserPrincipal user = new UserPrincipal(pc);
    user = UserPrincipal.FindByIdentity(pc, "User ID Will Come here");
    if (user != null)
    {
        userName = user.GivenName + " " + user.Surname;
    }
    else
    {
        //return string.Empty;
        userName = "User Not Found";
    }
}
Burada dikkat ederseniz önce veri almak istediğimiz yapıya ulaşmak adına bir bağlantı aracı açıyoruz. Bu araç ile hem makina hemde domain'e aynı arayüzden ulaşmak mümkün. Yukarıdaki örnekte domain'e ulaşma gözükmekte. Eğer ContextType parametresini ContextType.Machine olarak ayarlarsanız o zaman makina üzerinden de bilgi alabilirsiniz. Bir örnek şöyle olabilir :

  private bool IsValidWindowsUser(string userName, string password)
  {
       using (var p = new PrincipalContext(ContextType.Machine))
            return p.ValidateCredentials(userName, password);
  }

Api Dokümansasyonu için MSDN : http://bit.ly/1AdjRPt
Yukardaki örnekleri aldığım stackoverflow başlıkları :
how to get currently loggedin windows account from an asp.net page : http://bit.ly/1FrXZQE
C# - Not able to validate local machine user when “.\” is pre-append with username : http://bit.ly/1zECAD2

Yorumlar

Bu blogdaki popüler yayınlar

Vue.js, Vuetify, Typescript ve Jest ile unit test yazmak

Vue.js, Vuetify, Typescript ve Jest ile unit test yazmak Writing unit test with Vue.js, Vuetify, Typescript and Jest
Geliştirmekte olduğumuz proje kapsamında Vue.js, Vuetify ve Typescript ile çalışmaktayız. Burada unit test yazmak istediğimizde biraz araştırma yapmak, ve çıkan problemlerle boğuşmak zorunda kaldık. Bu yazıda bulduğumuz çözümler ile konuyu anlatmak istiyorum :
Öncelikle unit test aracı olarak jest kullanmaya karar verdik. Vue.js Cli tarafından öncelik Mocka'ya verilmiş olsada bizim projemizde onu açlıştırmak hiç kolay olmadı. Sıkıntı typescript kullanmamızdan kaynaklanmakta. bu iş için kullanacağımız araçların hepsi typescript destekli değil maalesef. Gelelim adımlara :
1. npm ile bazı paketleri projemize eklememiz lazım :
npm i -D jest@23.6.0 jsdom@13.2.0 jsdom-global@3.0.2 ts-jest@23.10.5 @vue/test-utils @vue/cli-plugin-unit-jest @vue/cli-plugin-typescript

Burada önemli nokta jest sürümünün 23'de kalması. Çünkü ts-jest şu anda (11.02.2019 itibari ile) sadece je…

MongoDB'yi Çalıştırmak

MongoDB'yi development makinamıza kurduktan sonra (kurulumu şu makalemde görebilirsiniz), artık onunla çalışmamız lazım. Ancak bunun için öncelikle mongo db 'nin çalışır hale gelmesi gerekiyor. Bu işlem 2 şekilde olabilir.
1. ihtiyaç olduğunda mongodb'yi elle çalıştırabilirsiniz
2. mongodb yi windows servis olarak çalıştırıp, bilgisayar her çalıştığında otomatik olarak çalışmasını sağlayabilirsiniz.

Öncelikle mongodb'yi command prompt'dan çalıştırabilmek için bir ayar yapmamız lazım. Bunun için önceki makaleme bakabilirsiniz : http://www.alperkonuralp.com/2016/10/mongodbyi-command-prompttan-calstrmak.html

Şimdide MongoDB'nin veri tabanı dosyalarını depolayabilmesi için gerekli olan dizinleri oluşturalım.
1. Command Prompt açılır. ( bunun için start tuşunda cmd yazıp enter'e basmanız yeterli olacaktır. Ancak yönetici yetkileri ile açmak daha iyi olacağı için cmd yazdığınızda görünen programa sağ tıklayıp yönetici olarak aç seçeneği ile açmanız daha iyi olaca…

Ubuntu 14.10'da Uyku Moduna geçme problemi

Ubuntu'yu 14.10'a yükselttikten sonra Laptop'un kapağını kapattığımda sistemin uyku moduna geçmediğini farkettim. Bu konuda bir araştırma yaptım ve bulduğum şu sayfadaki çözüm işimi çözdü.

1. Terminal ekranını açın(ctrl+alt+t) ve aşağıdaki kodu girin :
sudo nano /etc/systemd/logind.conf 

2. Bu dosyada :
#HandleLidSwitch=suspend 
şeklinde bir satır göreceksiniz. Bu satırın başındaki # işaretini kaldırım. Nano'dan çıkmak için Ctrl+x yapın, sonrada y tuşuna basın. İşte hepsi bu kadar.

After upgrade my laptop to Ubuntu 14.10, when I close the lit, laptop isn't gone to suspend. I was search the google for this issue, I found the solution in this page.  This solution is :

1. Open the terminal(ctrl+alt+t) and write this code :
sudo nano /etc/systemd/logind.conf 

2. In this window, find this line :
#HandleLidSwitch=suspend
remove this # chars at the begin of line. For Save and close nano, press ctrl+x and y .

That is it.