Merhabalar,

Bu yazımda temel oturum yöntemimizi Authorization Filter Attribute kullanarak yapan bir örnek oluşturacağım.

Öncelikle kendi filter ımızı oluşturacağız , MyAuthorizationAttribute adında bir filter oluşturup AuthorizationFilterAttribute sınıfından miras aldım , AuthorizationFilterAttribute sınıfındaki OnAuthorization metotudun override edelim.

MyAuthorizationAttribute.cs 

Oturum açma işlemini kontrol etmek için kullanıcı bilgilerini Request in Header parametrelerinde bulunan Authorization parametresinden alacağız , actionContext ten gelen verileri okuyacağız :

 actionContext.Request.Headers.Authorization.Parameter;

Örnek Kodumuzda öncelikle Authorization parameteresinin null olup olmadığı kontrol ediliyor null değil ise gelen verinin kontrolü yapılıyor , örnek olduğu için çok basit bi şekilde gelen string için bir kontrol yazdım , kendi şifreleme mekanizmanıza göre gerekli serviceleri eklemeniz gerekir.başarılı ise bir Identity oluşturulup thread e ekleniyor ve oturum açma işlemi başarılı şekilde sağlanıyor.

(“sseker”).Equals(userName,StringComparison.OrdinalIgnoreCase) kodu ile gelen değerin kullanıcı adı kısmının büyük küçük harf hatasına takılmadan ilerlemesini sağlamak için büyük küçük harf eşitlik zorunluluğunu göz ardı ediyoruz, password alanı için birebir eşitlik bekliyoruz.

Temel oturum açma yöntemi olduğu için bu işlemin kullanımı için

Header paramteresine Authorization eklenmesi gerekiyor Değerlerin girişini sağlarken Basic anahtar sözcüğü bir boşluk ve gerekli şifreleme değeri girilmelidir.

Örn : Authorization: Basic sseker:123456

Postman Ekran Görüntüsü :

screenshot_1

Genelde bu tarz kullanımlarda şifre açık şekilde gönderilmez Base64String olarak şifrelenen bir şifreleme gönderilip , kod tarafında çözümlenerek şifreleme işlemi kontrolü sağlanır.

yorum satırı olarak yazılan Encoding.UTF8.GetString(Convert.FromBase64String(tokenKey)); kod base64 formatında gelen stringi encode etmek için kullanılmaktadır.

Authorization işlemini JQuery AJAX ile yapmak için örnek :

Ajax kodumuzda headers parametresine Key-Value ekleyerek başarılı şekilde istek atabiliriz.

btoa(name + “:” + pass) : base64string e çevirip göndermemizi sağlıyor , kodumuzda ki encode işlemi bu işlemi encode edip istediğimiz formata dönüştürecektir,

base64 kullanmak istemiyorsanız postmandeki şekilde Basic sseker:123456 şeklinde gönderim sağlayabilirsiniz.

Javascript tarafında base64string’e dönüştürme işleminin nasıl yapılacağını da göstermek için eklenmiştir.

Web Api mizde Ajax isteklerin atılabilmesi için , Cors hatası alamamak için , daha önceden anlatmış olduğum linkte bulunan yazıyı mutlaka okumanızı tavsiye ederim.

ASP.NET – WEB API- CROSS DOMAIN – JQUERY AJAX – ACCESS CONTROL ALLOW ORIGIN HATASI

 

İyi Çalışmalar Dilerim.

Print Friendly, PDF & Email
Bu alana reklam verebilirsiniz!