Office 365 Self Service Password Reset (SSPR) Nedir. Nasıl Kullanılır

Office 365 Self Service Password Reset (SSPR), hizmeti BT uzmanlarına kullanıcı yönetim konusunu biraz da olsa kolaylaştırmaya yarayan bir kullanıcı parola yönetim hizmetidir.

Şirket içindeki bir kullanıcı parolasını unuttuğunda sistem yöneticisi ile iletişim kurması ve sistem yöneticinin de bu kullanıcıya destek olması neredeyse 15-20 dakika, çalışma ortamına göre bilemediniz 30 dakikayı bulduğunu söyleyebiliriz. Bu kadar basit bir işlemi BT yöneticileri değil de son kullanıcı tarafından sağlanması BT yöneticilerin performansını kim bilir ne kadar etkileyecektir. Böylelikle son kullanıcı şifre güvenliğini de bir kat daha arttırabiliriz.

Hiç vakit kaybetmeden bu hizmeti nasıl aktif edeceğimizi sizlere adım adım anlatmak isterim. İlk olarak office 365 genel yönetici hesabını kullanarak Azure Portalına giriş yapın.Office 365 yönetim merkezi altında Azure AD yönetim butonunu göreceksiniz.



Azure AD yönetimine tıkladığınızda, Sol taraftaki Azure Portalındaki seçenekler listesinden Azure Active Directory seçeneğini bulun ve seçin.



Azure Active Directory üzerine geldiğinizde sağ kısımda açılan pencerede Password Resetlinkini göreceksiniz.



Daha sonrasında açılan sayfada ise Self Service Password Reset hizmetini isterseniz belirli kullanıcılarda aktif edebilirsiniz, isterseniz de tüm kullanıcılarda da aktif edilebilir. Tüm kullanıcılarda aktif edip, kaydediyorum.



Kimlik doğrulama yöntemleri bölümünde ise kullanıcılarda E-mail, Mobile phone, Office phone ve Security questions gibi yöntemleri kullanarak şifre değişiklikleri gerçekleştirilebilir.


Kimlik doğrulama yöntemleri;

  1. E-posta, kullanıcının yapılandırılmış kimlik doğrulama e-posta adresine kod içeren bir e-posta gönderir

  2. Cep Telefonu, kullanıcıya yapılandırılmış cep telefonu numarasına kod içeren bir çağrı veya kısa mesaj alma seçeneği sunar

  3. İş Telefonu, kullanıcıya yapılandırılmış iş telefonuna kod içeren bir çağrı alma seçeneği sunar

  4. Güvenlik Soruları arasından seçimler yapılır;

  • Kaydolmak için gerekli soru sayısı: Kullanıcının seçim yapabileceği bir soru havuzu oluşturmak üzere daha fazla yanıt vermeyi seçebileceği anlamına gelir. Bu seçenek, 3-5 aralığında ayarlanabilir ve sıfırlamak için gereken soru sayısına eşit veya daha büyük olmalıdır.

  • Güvenlik soruları eklenirken “Özel” düğmesine tıklanarak özel sorular eklenebilir

  • Sıfırlamak için gereken soru sayısı: Kullanıcı parolasının sıfırlanması veya kilidinin açılması için doğru cevaplanması gereken 3-5 soruya ayarlanabilir.



Kayıt bölümünde ise kullanıcılar oturum açtıklarında kaydolmalarını zorunlu kıl seçeneği ile kimlik doğrulama bilgilerini onaylamaları istenen gün sayısı bilgileri bulunmaktadır. Bu seçenekler ortamdaki yönetim şekline göre düzenlemeler yapılabilir.



Bilgilendirme bölümünde ise kullanıcıları şifre sıfırladığında ilgili yöneticilere ya da tüm yöneticilere bilgilendirme maili gönderilsin mi? bilgisi verilmektedir.



Özleştirme bölümünde ise kullanıcılar bu süreçte daha fazla yardıma ihtiyaç duyduklarında belirlenen link ve e-mail adreslerinden destek alabilir bilgisi sunulur. Bu bölümü kendinize göre düzenleyebilirsiniz.

Tüm bu seçenekleri düzenledikten sonra bir kullanıcımız üzerinde Self Service password reset işlemini uygulayalım. Üst kısımda bu özelliği nasıl aktif edeceğimizi gördük, aşağıdaki kısımda ise son kullanıcı tarafında nasıl bir yol izleneceğini anlatılmaktadır. Azure Users and Group tabi altında demo1 isim bir kullanıcım mevcut, bu kullanıcı üzerinde demeleri gerçekleştireceğiz.



Office 365 portalına ya da Azure portalına giriş yapmak istediğimizde yukarıdaki gibi bir uyarı ile karışılacaksınız. Azure Active Directory Self Service password resetbölümünde belirttiğimiz gibi ‘Yöneticiniz, hesabınızı kurtarmanıza yardımcı olmak ve ek bir güvenlik bilgilerini eklemek için zorunlu bir takım bilgiler istiyor’ Bu kısımda ileri butonu ile devam edin



Ardından Telefon veya E-posta doğrulama bilgileri isteniyor. Herhangi birini girip, ilerleyebilirsiniz.


Kimlik doğrulama işlemini Telefon üzerinden gerçekleştirildiği için telefona gönderilen doğrulama kodunu girin.


Kimlik doğrulama işlemi başarılı bir şekilde tanımlandıktan sonra bitir butonu ile devam ediyoruz.


Kullanıcı şifrelerini sıfırlaması gerektiği zaman Hesabınıza erişemiyor musunuz? Bağlantısına tıklayıp, şifre değiştirme adımlarını takip edebilir. İlk olarak kişisel veya iş hesabı seçmeleri istenir. Biz kurumsal işe hesabını seçerek ilerliyoruz.



Şifre sıfırlaması isteyen kullanıcı otomatik bir bot olmadığını doğrulamak için, resimde gösterildiği gibi istenilen yazı ve sayılar karakterleri girilir.



Doğrulama için mevcut yöntemlerden herhangi birini seçerek, ilerlenir.



Kullanıcı doğrulama işlemi başarılı bir şekilde tamamlandığında yeni şifre oluştur ekranı gelecektir. Belirlediğiniz yeni şifreyi girerek şifre sıfırlama işlemini tamamlayabilirsiniz.



Kullanıcımız bundan sonraki portal erişimlerini belirlediği şifre ile giriş yapabilir.

AD Kullanıcılarına PowerShell ile SMTP ve E-mail adresi nasıl eklenir

Bu makalemizde Active Directory üzerindeki kullanıcıların E-mail ve Proxy Address kısımlarına mail adresini, Powershell ile nasıl ekleyeceğimizi göreceğiz.


Active Directory üzerindeki kullanıcı özelliklerini kontrol ettiğimizde E-mail ve Proxy Address kısımlarının boş olduğunu görüyoruz. (Ortamda Exchange alt yapısı yok ise)


İlgili Powershell komutumuzu çalıştırmadan önce Active Directory üzerindeki işlem yapacağımız kullanıcıları belirleyip, o kullanıcıların bulunduğu bir CSV dosyası oluşturuyoruz. (UserPrincipalName ve ProxyAddress başlığı altında)


$Path = “C:list.csv”

$result = Import-Csv -Path $Path

foreach ($item in $result)

{

Get-ADUser -Filter * , Where-Object UserPrincipalName -eq $item.UserPrincipalName , Set-ADUser -Add @{Proxyaddresses=”SMTP:” + $item.Proxyaddresses;mail=$item.Proxyaddresses}

}


Ardından yukarıdaki Powershell komutumuzu çalıştırarak, kullanıcı üzerindeki belirttiğimiz tab’ların mail adresi olarak güncellendiğini görebiliriz.

Ortamınızda Office 365 bulut alt yapısını kullanıyorsanız ve ADconnect ile beraber şifre senkronizasyon işlemini gerçekleştirirken kullanıcı tarafındaki iş yükünüzü çok daha aza indirebilirsiniz.

INSTALLING HYPER-V

In this article, we will learn how to install Hyper-V in Windows Server. We will add the Hyper-V role on ‘Server Manager‘ which starts by default after you install Windows Server, or we can start manually.

To add the role, select ‘Add roles and features’.

Then ‘Add Roles and Features Wizard’ appears. The ‘Destination Server’ on the right corner is our local server. This wizard tells us that is going to help us to install roles and features, after we read it, we can click the Next button.

We do not want to do Remote Desktop Services installation, we want to add a Hyper-V role just like the first option mention: “Configure a single server by adding roles, role services and features.” Select the first option and click Next.

After that, we wil select which server we want to install the role on. I have already chosen my destination server, so it is a selection from the server pool and the server appears on the table. So, I agree with the default options and click Next.

Now this is the page that we choose which roles we want to install on this server. We will select the Hyper-V option.

After that, wizard asks us if we want to add features that are required for Hyper-V. That is the remote server administration tools which includes the management tools named Hyper-V Module for PowerShell and the Hyper-V GUI (Graphical User Interface).

You can see PowerShell command screen below. You can manage your Hyper-V server with PowerShell more sophisticated than GUI.

They are very useful tools, so I want to add features. And after I click that, I see that Hyper-V box is checked. Then wizard asks us that if we want to install more features on this server. Due to choosing the additional management tools, the Remote Server Administration Tools are already checked.

IMPORTANT NOTE: Virtual Server

If your Server is virtual, you cannot install the additional management tools, then Hyper-V cannot be checked. In that case you should write a PowerShell command to allow nested virtualization which you can do it like below.

After we see the ‘Remote Server Administration Tools’ box is checked, we are clicking Next. Then some useful information appears, after reading, click Next.


Now, we are asked about creating virtual switches which allow our virtual machines to communicate with other computers out on the network. Creating a virtual switch now is recommended by the wizard to provide network connection to the virtual machines. And it mentions that one virtual switch will be created for each network adapter that we select. We can remove it or add new ones later by using Virtual Switch Manager. For now, to create my first virtual switch, I select my network adapter and then click Next.

Hyper-V provides us to live migration which allows running virtual machines to move from one host to another with no downtime. To allow our server send and receive live migrations, we are clicking the checkbox. If your Hyper-V server will be stand-alone, you can leave the box unchecked. Because of I want to focus on the installation of Hyper-V, I will continue with the default option and we will talk about the authentication protocols later.

Then, the wizard wants us to choose the storage of our virtual machine and its configuration files. By default, virtual hard disks are stored in C:UsersPublicDocumentsHyper-VVirtual Hard Disks and the configuration files are stored in C:ProgramDataMicrosoftWindowsHyper-V but you can change the storage place. I want to continue with the default option then I click next.

After that, the confirmation screen appears like below.

Here we can see that Hyper-V is going to be installed with its additional administration tools which we selected. Restarting is necessary, so I will check the box for automatic restart after installing. But you can leave the checkbox unchecked and restart your machine later.

That is all for installation, I hope it would help you. See you on another article.

Azure Active Directory pass-through authentication ile Single Sign-On (SSO) nasıl yapılır

Kurumsal çalışma ortamlarında ya da kişisel iş süreçlerinde kullanıcılar bir kimlik doğrulamaya ihtiyaç duyarlar, her bir hesap için bir şifre oluşturuyor ve bu hesap bilgilerini ya dijital ortamlarda saklıyorlar ya da ufak bir not defterinde, aradan kısa bir süre geçtiğinde veya bu şifreleri unuttukların da geri dönük hesap bilgilerinden o hesaba ait şifreyi bulup, giriş yapmaları kullanıcılar için bir eziyet haline geldiğini ve iş sürekliliğini azalttığını söyleyebiliriz. Neredeyse 1-2 dakikada yapılacak iş süreçlerini 10-15 dakika da yapıldığını görüyoruz.

Kimlik doğrulama denildiğinde şüphesiz aklıma ilk gelen servis Microsoft ADconnect tools yazılımıdır. Microsoft’un AD Connect aracını kullanarak, kullanıcıların kimlik bilgilerinin korunmasını ve yönetimini sağlayabiliyoruz. Bununla birlikte ise (Azure AD) Pass-through Authentication hizmeti de Microsoft AD connect aracına eklenerek Single Sign On (SSO) özelliği ile de tek bir kimlik doğrulama ile birçok servise erişim sağlanabiliyor.



Azure Active Directory (Azure AD) Pass-through Authentication; kullanıcılar tek şifre kullanarak hem local ortamlarında hem de bulut tabanlı ortamlarda oturum açmalarını sağlayan bir yazılım servisidir. Aynı zamanda bu yöntemle birlikte şifre sync işleminin yanı sıra ADFS yapısı gibi güvenli ortamlar hazırlayıp, kimlik doğrulama işlemi yapabilirsiniz. Bu hizmet sayesinde bir yandan kullanıcı verimliliğini artarken, diğer bir yandan da BT yönetim süreçlerini hızlandırır.

Şimdi ise bu özelliği nasıl kullanacağımız konusunda yapılması gereken adımları sizlere paylaşacağım. İlk olarak test ortamımı sizlere kısaca anlatmak isterim. Ortamımızda 1 adet DC sunucu ve ona üye olan bir ADconnect sunucumuz bulunmaktadır. Microsoft ADconnect yazılımı kurulu olan sunucumuza bağlanıp, ADconnect yazılımını çalıştırarak kuruluma başlayabiliriz.


Kurulum penceresinde karşıma gelen configure butonuna tıklayarak ilerliyoruz.


Ardından Change user sign-in linkine tıklayıp, ilerliyoruz.


Global admin hakkına sahip bir hesap ile ilgili yerleri doldurup, ilerliyoruz.


Sonrasında ise resimde görüldüğü gibi Pass-through authentication seçeneğini işaretliyoruz. Bu seçenek ile birlikte Enable single sign-on linkini işaretleyerek, tek bir kimlik doğrulaması ile birçok servis veya uygulamaya erişim hakkı vermiş oluyoruz.


On-prem tarafındaki eşitleme işlemini doğrulamak için local tarafta oluşturduğunuz ve admin hakkına sahip bir hesap ile giriş işlemi yapılarak, credentials bilgilerini doğruluyoruz. Doğrulama işlemi tamamlandıktan sonra On-prem taraftaki domain bilgilerinin otomatik olarak geldiğini göreceksiniz.


Bu işlemlerin sonunda sync işlemi otomatik olarak başlasın mı? Diye soruyor. Bu tercih isteğe bağlıdır. Configure diyerek kurulum adımlarımızı başarılı bir şekilde tamamlamış bulunuyoruz.

Şimdiye kadar Azure Active Directory pass-through authentication kurulum adımları tamamladık ve Single Sign On özelliğini aktifleştirdik. Peki, bu özelliği kullanıcılara nasıl tanımlayacağımız konusunda ise bize GROUP POLICY servisi yardımcı olacaktır.

Herhangi bir DC üzerinde Group Policy Management consolunu açıyoruz. Tanımlama işlemini isterseniz uygulanacak kullanıcı OU’larına ya da domain altında olan tüm kullanıcılara tanımlama işlemini gerçekleştirebilirsiniz. Ben tüm domain altındaki kullanıcılara tanımlanacak şekilde ayarlacağım. Bu sebeple domain hizmeti altında yer alan default domain policy‘ni seçip, editliyorum.


Ardından User ConfigurationPoliciesAdministrative TemplatesWindows ComponentsInternet ExplorerInternet Control PanelSecurity Page klasörü altında Site to Zone Assignment List linkine tıklıyorum.


Açılan pencerede ise policy’i aktifleştirmek için, Enable seçeneğini seçiyoruz. Configurasyon ve yönlendirme işlemi için ise Show butonuna tıklıyoruz. Enter the zone assignment kısmına ise aşağıdaki değerleri girerek, işlemleri uyguluyoruz.

Value Name: https://autologon.microsoftazuread-sso.com – Value: 1
Value Name: https://aadg.windows.net.nsatc.net – Value: 1

Tüm bu işlemleri tamamladıktan sonra herhangi bir kullanıcı login olmak istediğinde, yönlendirme işlemi devreye girerek (Single Sign On) Office 365 hesabına doğrudan erişim sağlanacaktır. Bu sayede yukarıdaki işlemleri kullanarak kullanıcıların kimlik bilgilerinin korunmasını ve yönetimini sağlayabiliyoruz.

Angular 6 İle Kütüphane Geliştirmek: İlk kütüphanemizi yazıyoruz!

Bu yazı ile Angular 6 ile birlikte kolaylaşan kütüphane geliştirme sürecini hep birlikte inceleyecek, “yeni bir kütüphane nasıl geliştirilir?” sorusunu yanıtlayacağız.

Gereksinimler

Eğer hali hazırda bir Angular geliştirme ortamına sahip değilseniz ihtiyacınız olan iki şey var;

Kütüphane Projesini Oluşturmak

İlk olarak yeni bir Anguılar 6 çalışma ortamı kurarak işe başlıyoruz. Bunun için aşağıdaki Angular CLI komutunu kullanacağız;

ng new peakup-lib-demo

Proje oluşturulup, npm paketleri yüklendikten sonra yeni bir Angular 6 projesine sahip oluyoruz. Şimdi ismi daha önce “angular-cli.json” olan, Angular 6 birlikte “angular.json” olarak değişen konfigürasyon dosyamızı incelediğimizde “projects” isminde bir alan olduğunu göreceğiz. Bu alanın anlamı artık aynı çalışma ortamında birden fazla proje oluşturabiliyoruz. Bu proje yeni bir uygulama olabileceği gibi, bizim bugün inceleyeceğimiz gibi bir kütüphane de olabiliyor. O zaman bir kütüphane projesi oluşturarak sürece devam edelim. Bunun için aşağıdaki komutu kullanacağız;

ng generate library peakup-lib

Bu komutun ardından root dosyamızın altında “projects” adından bir dosya oluştuğunu, ve altında da ismini “peakup-lib” olarak belirlediğimiz kütüphanemizin yer aldığını göreceğiz. Aynı zamanda angular.json dosyasını incelediğinizde “projects” altında “peakup-lib” adında yeni bir proje olduğunu göreceksiniz.

Şimdi hep birlikte oluşan projeyi inceleyelim!

İlk olarak src > lib dizininde yer alan peakup-lib.module.ts dosyasına göz atalım;

Daha önce Angular 2+ projesi geliştirdiyseniz app.module.ts dosyasından mutlaka haberdarsınızdır. Angular projeleri modüler bir yapıda geliştirildiğinden her uygulamada varsayılan olarak en az bir modül olmak zorunda. Kütüphane projeleri için de aynı durum geçerli. Fakat dikkat edilmesi gereken bir husus var; eğer daha önce birden fazla modül içeren bir proje geliştirmediyseniz kullanmaya alışık olmadığınız “exports” alanı. Bu alan ilgili modülün import edildiği projeler/modüllerin erişebileceği component’leri içermelidir. Bu şekilde export edilen component’lere, modülün import edildiği projelerden/modüllerden erişilebilmesine olmasına olanak sağlanır.

Resimde de görüldüğü üzere proje içerisinde bulunan “PeakUpLibComponent” export edildiğinden dolayı, modülün import edildiği projelerde/modüllerde erişilebilir olacak. Yani siz de kütüphaneniz içerisinde oluşturduğunuz ve dışarıdan erişilebilir olmasını istediğiniz component’leri bu alana eklemelisiniz.

Şimdi default olarak oluşan component’imize göz atalım;

PeakUpLibComponent

görüldüğü üzere yalnızca içerisinde bir html template’e sahip. Bu component kütüphanemizin çalışıp çalışmadığını anlamamıza yardımcı olacak. Daha sonra kendisine ihtiyacımız olmayacak

Şimdi kütüphanemiz için önemli olan asıl dosyaya göz atalım; public_api.ts

public_api.ts

kütüphanemizde bulunan modül, component, service, model gibi tüm proje dosyalarından hangilerinin kütüphanemizin kurulu olduğu projeden erişilebilir olduğunu tanımadığımız dosya. Yukarıda yer alan resimden de anlaşılacağı üzere, kütüphanemizde bulunan 3 dosya, kütüphanemizi kurduğumuz projede kullanılabilir olacak.

Kütüphanemizi build etme zamanı!

Kütüphanemizi yayınlamak veya test etmek için build etmemiz gerekiyor. Aşağıdaki komutla kütüphanemizi build ediyoruz:

ng build peakup-lib

Şimdi ilk oluştuduğumuz proje olan peakup-lib-demo içerisinde kütüphanemizi deneyelim. Bunun için peakup-lib-demo projesinin app.module.ts dosyasında kütüphanemizi import etmemiz gerekiyor.

Resimdeki gibi PeakUpLibModule‘ü import ediyoruz. Şimdi kütüphanemiz içerisinde yer alan PeakUpLibComponent‘i, AppComponent içerisinde kullanarak kütüphanemiz çalışıyor mu bakalım;

app.component.html

dosyamıza component’imizi yerleştirdikten sonra “ng serve” komutuyla projemizi çalıştırıyoruz.

Ve sonuç;

Görüldüğü üzere kütüphanemiz sorunsuz çalışıyor.

Bu yazımızda sizlerle birlikte Angular 6 ile birlikte kolaylaşan kütüphane oluşturma sürecini temel olarak inceledik. Bir sonraki yazımızda ise “yazdığımız bu kütüphaneleri public ve private olarak nasıl yayınlar ve kullanma sunarız?” sorusunu yanıtlayacağız!

Aklınıza takılan soruları sormaktan çekinmeyin, bir sonraki yazımızda görüşmek üzere.

.NET İçin Kuyruk Çözümleri : MSMQ

MSMQ Nedir?

MSMQ zaman bağımsız olarak birden fazla uygulama arasında offline veri alışverişini sağlayan Windows tabanlı kuyruk sistemidir. MSMQ ile birlikte uygulama veya ağ üzerinde bir sorun oluşsa dahi (çökme, hata fırlatma vb.) akış, gerçekleşen sorun giderildikten sonra veya çöken/çalışmayı durduran uygulama tekrar çalışmaya başladıktan sonra devam eder.

MSMQ ile iletilen mesajlar sistem üzerinde fiziksel bir alanda saklanmaktadır. Bu noktada yukarıda bahsetmiş olduğumuz senaryolar dahil, mesajları alması beklenen uygulama kapalı olsa dahi bu mesajlar saklanmaktadır.

Resim 1: Oluşturduğunuz Queue’ları Computer Management Ekranından Görmeniz Mümkün (compmgmt.msc)

Kuyruk Tipleri

MSMQ için iki adet kuyruk tipi mevcut;

Public Queues:

Bu tipte oluşturulmuş olan kuyruklara, yalnızca oluşturulduğu sunucu/bilgisayardaki uygulamalardan değil, aynı ağa bağlı tüm sunucu/bilgisayarlardan erişim sağlanabilmektedir. Bu sayede aynı ağda bulunan iki farklı sunucu ve bu sunucularda kurulu olan farklı uygulamalar arasında da MSMQ aracılığı ile mesaj iletimi sağlanabiliyor.

Private Queues:

Bu tipte oluşturulmuş olan kuyruklara ise yalnızca oluşturulduğu bilgisayar/uygulama üzerinden erişim sağlanabilir ve yalnızca aynı bilgisayar/sunucu üzerinde kurulu olan uygulamalar bu kuyruktan beslenebilir ve bu kuyruğu besleyebilir.

Programlanabilirlik

MSMQ alt yapısı C#, VB.NET ve .NET tabanlı diğer diller tarafından kullanılabilmektedir. System.Messaging namespace’i altından erişilebilir.

Kurulum

Eğer MSMQ sistemini bilgisayarınıza kurmak isterseniz, aşağıdaki adımları takip edebilirsiniz.

  1. Denetim Masası üzerinden “Programlar” seçimini yapın, ardından açılan ekranda “Programlar ve Özellikler” altında bulunan “Windows Özelliklerini Aç veya Kapat” seçimini yapın. Veya Windows + R tuş kombinasyonu ile “optionalfeatures” komutunu çalıştırabilirsiniz.
  2. Açılan pencerede “Microsoft Message Queue (MSMQ) Server” seçeneğini işaretleyin

Resim 2: “Windows Özelliklerini Aç veya Kapat” seçimi sonrası açılan pencereden “Microsof Message Queue (MSMQ) Server” özelliği işaretlenmeli.

Aynı kurulumu Windows Sunucu üzerinde yapmak için ise aşağıdaki adımları izlemelisiniz;

  1. Server Manager açıldıktan sonra Sağ üst tarafta bulunan Manage altından, “Add Roles and Features” seçilir.
  2. Açılan pencereden Features adımına gelindikten sonra listeden “Message Queuing” özelliği işaretlenir. Bu seçimin ardından “Install” butonu tıklanır ve özelliğin aktif edilme süreci bağlar. Bu işlemin ardından sunucunuzu yeniden başlatmanız gerekmez.

Resim 3: Features adımı altındaki listeden “Message Queuing” seçimi yapılır ve Install butonu tıklanarak kurulum süreci başlatılır.

C# Uygulamalarında MSMQ’yu Kullanmak

MSMQ’nun ne olduğundan ve nasıl kurulduğundan bahsettiğimize göre, örnek bir senaryo üzerinden bir C# uygulamasında MSMQ’nun sağladığı kuyruk alt yapısından nasıl faydalanabiliriz inceleyelim.

Senaryomuz; PeakUp’ta yeni işe başlayan personelin bilgisi sisteme girildiğinde, ilgili çalışana mail atmak olsun. Bu senaryoda ihtiyacımız olan iki uygulama var;

  1. Personel bilgilerinin girileceği uygulama
  2. Farklı uygulamalardan gelen mail gönderme taleplerini karşılayacak ve mailleri gönderecek uygulama.

İlk uygulamamızın ismi Peakup.Employee.Manager olsun. Projemizin yapısı aşağıdaki gibi;

PeakUp.Empoyee.Manager

  • Extensions
    • MessageQueueExtensions.cs (MessageQueue sınıfı için yazacağımız extension metotlar)
  • Models
    • EmployeeModel.cs (Personel sınıfı)
    • Mail.cs (Mail Sınıfı)
  • Program.cs

Önemli

MessageQueue sınıfını kullanabilmemiz için her iki projemize de System.Messaging referansını eklememiz gerekiyor.

Şimdi kodlara göz atalım:

Oluşturmak istediğimiz isimde bir Queue zaten varsa onu getirmek, yoksa tekrar oluşturmak gerekiyor. Bu işlemi daha hızlı bir şekilde gerçekleştirmek için bu Extension metodu kullanabilirsiniz.

https://gist.github.com/kivancbakdi/9ca90e66f422151ff1db65b7c13f146a

Employee ve Mail sınıflarımız;

https://gist.github.com/kivancbakdi/87f66c7e26a3e91fdea43d572d94dccd

https://gist.github.com/kivancbakdi/d20de4c25791aec483b2755987e08ac8

Yeni personel oluşturma ve bu personeli mail için kuyruğa atma işlemlerini yaptığımız program dosyamız;

https://gist.github.com/kivancbakdi/3c2af5f2b1f008c6e048474c0027f915

İkinci uygulamamızın ismi ise PeakUp.Email.Manager. Projemizin yapısı aşağıdaki gibi;

PeakUp.Email.Manager

  • Extensions
    • MessageQueueExtensions.cs (MessageQueue sınıfı için yazacağımız extension metotlar)
  • Models
    • Mail.cs (Mail Sınıfı)
  • Program.cs

Bu projemizin kodları da aşağıdaki gibi;

Oluşturmak istediğimiz isimde bir Queue zaten varsa getirmek, yoksa tekrar oluşturmamız gerekiyor. Bu işlemi daha hızlı bir şekilde gerçekleştirmek için bu Extension metodu kullanabilirsiniz.

https://gist.github.com/kivancbakdi/9ca90e66f422151ff1db65b7c13f146a

Mail sınıfımız;

https://gist.github.com/kivancbakdi/d20de4c25791aec483b2755987e08ac8

Mail kuyruğunu dinleyen ve mail sınıfını konsola yazdıran program dosyamız;

https://gist.github.com/kivancbakdi/e74526652da6f740544de516bdd1e51b

Bir C# projesinde MSMQ kullanan bu yazımızın sonuna gelmiş olduk. Bu konuyla ilgili daha fazla detaya ihtiyaç duyuyor veya örnekleri beraber incelemek istiyorsanız Live Coding Sessions‘larımızı takip etmeyi ihmal etmeyin!

Teşekkürler!