Category: C#

.Net Core 2 IdentityServer4 Example – OpenId OAuth2

Since .netCore released I couldn’t find much information about how to implement either oauth2 or openId .I found identityServer4 easy to create an authorization server and did an example how to set it up. I hope this article will be helpful for some who is looking for what it is and how to implement identityserver4 along with refreshtoken on the .net core 2. So,what is IdentityServer4 ? IdentityServer4 is an OpenID Connect and OAuth 2.0 framework for ASP.NET Core. It is free and also has support for commercial uses.We’ll be creating hybrid authentication flow to implement refresh token using grant types Resource Owner Password Credentials(ROPC) and Refresh Token.  I won’t be explaining all protocols here. If you need further information you can checkout IdentityServer4  ,OAuth2 and OpenId. Let’s dig into some coding.

Continue reading

Web Api Bearer Token Authentication

Bu makalemde front-end ve back-end arasında web api bearer token  authentication kullanımından bahsetmek istiyorum. İlk olarak nedir bu token diyerek başlayıp avantajlarından bahsettikten sonra örnek bir ASP .NET Web Api Üzerinden uygulama ile devam edeceğim.

 

Nedir Bu Token ve Avantajları ?

Kısaca özetlemek gerekirse token’ı anahtar olarak düşünebiliriz. Yani biz back-end serverımıza kullanıcı adımızı ve şifremizi doğrulamak için gönderdiğimizde bize bu doğrulamaya karşılık bir token ( Anahtar ) veriyor. Sonrasında istek gerçekleştirmek istediğimizde bizden kullanıcı adı şifre yerine bu anahtarı bekliyor ve gerekli güvenlik kontrollerini sağlıyor. Burada böyle bir yapının kullanılmasının bize sağladığı avantajlardan başlıcaları;

Continue reading

.Net – NLog Kullanımı ( Error – System Logging )

Merhaba arkadaşlar,uygulama geliştirirken hata yönetimi konusunun önemi bir hayli fazla. Kullanıcının karşılaştığı hataların saklanması bize bu hataların çözümünde büyük bir kolaylık sağlayacaktır. Ben projelerimde kullandığım bir framework olan NLog’tan bahsetmek istiyorum.Bu arada free olması da bir hayli cezbedici. Ayrıca kullanışlı ve kurulumu da bir o kadar kolay. NLog ile bir hata oluştuğu durumda yapabileceklerinizden bahsetmek gerekirse; mail atabilirsiniz,dosyaya yazabilirsiniz, veritabanına ekleyebilirsiniz , console’a çıktı alabilirsiniz ve daha bir çok sağlayıcı ile kullanabilirsiniz. Ben bu makalemde dosyaya saklama işleminden bahsetmek istiyorum. Örnek uygulama için bir konsol projesi oluşturup bu projede genel hata yönetimi entegrasyonunu yapacağız. Şimdi bir örnek ile başlayalım…

Boş bir proje oluşturalım.

Continue reading

Web Api Simple Injector Dependcy Resolver

Merhaba arkadaşlar bu makalemde Web Api servisimize bir IOC (Inversion Of Control ) framework’u olan Simple Injector implementasyonundan bahsetmek istiyorum. Dependcy injection nedir makalemde IOC  prensibi uygulama yöntemlerinden biri olan DI(Dependcy Injection) hakkında konuşmuştuk.  Bu makalemde ise Simple Injector framework’u ile bu dependcylerin birbirleri ile olan bağımlılıklarının çözülmesinden ve yaşam ömürlerinden bahsetmek istiyorum.

Continue reading

.NET Fluent Validation ( Model Kontrolü )

Bu makalede .NET için ek bir Nuget paket halinde bulunan Model kontrol için geliştirilmiş fluent interface ve lambda expression desteği olan güzel bir eklentiden bahsetmek istiyorum. Daha önce MVC yada herhangi benzeri Model Driven Architecture (MDA) prensibiyle uygulama geliştirdiyseniz bu mimarilerde Model’lar için validation ASP.NET core’u içerisinde yer alan Data Annotions  ile yapılabilmekte. Fakat bu yöntem ile validation yapıldığı zaman model sayısı arttığında daha karmaşık ve yönetimi zor bir yapı oluşmakta. Bunun yerine validation katmanını business layer’a taşıyıp tek bir yerden kontrolün yapılması ve model domain’in temiz kalması daha kontrol edilebilir bir yapı sağlamakta. Continue reading

Dependcy Injection nedir ( C# ) Ornek? ( IOC )

Dependcy Injection (DI) nedir ? Açıklama ve Örnek uygulama.

Biz yazılımcı arkadaşların genelde yazılım geliştirme denince olayı kodlama olarak düşünüp bir anda başlayıp sonunu getiremediğimiz bir çok proje olmuştur. Tasarım sürecine ayrılan zamanın kayıp olduğunu düşünmek yapılan en büyük hatalardan sadece bir tanesi. Programda tasarım sürecinin kısa tutulması, isteklerin ne doğrultuda geleceğinin iyi değerlendirilmemesi sonucunda karmaşık yapılar içerisine girmek, her istek için kodun farklı yerlerini değiştirmek bu süreci böyle devam ettirirken projemizin doğru çalıştığını varsaymak ve devam etmek ilerde çok büyük sorunlara neden olmaktadır.

Dependcy Injection hakkında konuşmadan önce hangi problemleri çözdüğünü konuşalım,

Continue reading