Web servisleri parametrik yapıları, ajax teknolojisi ile iç içe olması ve model tiplerimizi javascript’e aktarabilmesi ile web projelerinin vazgeçilmez unsurlarıdır.
Bir önceki yazımızda bahsettiğimiz Pagemethod’ların birçok dezavantajına karşılık web servisleri her zaman paramatrik yapısı ve birçok özelliği ile tercih edilebilir durumdadır. Fakat bu noktada güvenlik gibi bir unsura değinmeden edemeyeceğiz çünkü yazımızın konusu ![]()
Web servislerinde güvenliği sağlamak için aşağıdaki güvenlik önlemlerini geliştireceğimiz sisteme göre tercih edebiliriz.
1- Adding Service Token To Header
2- Session Control
3- Ssl certification
4- Form Authentication
Yukarıdaki güvenlik önlemlerinden önce web.config içerisinden projelerimizde kullandığımız webservisleri için genel ayaları yönetebiliriz. Aşağıdaki yorum satırı haline getirilen satırlarda ilgili değişiklikleri yaparak servislerin davranışlarını projemize göre özelleştirebiliriz.
Adding Service Token To Header
Servislerimizi referans olarak çağırdığımız sayfarımızda dinamik olarak Service Token üreterek bu token’ı webrequestlerimizin header collection’ına eklememiz gerekmektedir. Servisimizi çağırdığımız sayfamızın aspx ve cs bölümlerini aşağıdaki oluşturuyoruz. Cs tarafında SERVICE_TOKEN Nesnemizi oluşturup sayfamıza ekliyoruz. Bu Token’ı Cache nesnesine ekleyerek servis tarafında bu nesnenin değerini kontrol ediyoruz. Ayrıca nesneyi request’lerimize header olarak eklememiz gerekiyor. Böylece web servisinin çağrıldığı sayfa ile asenkron olmasını sağlıyoruz. Herhangi bir adresten yapılan requestler dikkate alınmayacaktır. Servis tarafında üretilen exception’ı göreceklerdir.
Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebServiceSecurity._Default" %>
