none
rest api hakkında .net c# RRS feed

  • Soru

  • herkese merhaba, 

    sorum şudur:

    mobil(ios) bir application oldugunu varsayalım.  register user yapmam gerekiyor. amacım uzakta bir host da bulunan mssql veritabanına kayıt atmak. bunu asp.net ile yapmak istiyorum. daha önce düşündüğüm yöntemi şu şekilde idi:

    ipad/iphone da gerekli degerleri kullanıcı doldurur. kullanıcı daha sonra register button a bastıgında,

    şu sayfaya gider:

    www.abc.com/registerUser.aspx?email=selcuk@selcuk.com&password=123

    tabi bu şekilde olabiliyor fakat güvenlik açığı degil güvenlik deliği söz konusu.

    biraz araştırdım. sanırım rest api kullanmam gerekiyor. 

    ilk sormak istedigim, rest api ile bu iki deger (email,password) nasil güvenli bir şekilde asp.net tarafına gelebiliyor.

    ikinci sormak istedigim, bu işin sanırım iki ayagı var. sanırım bir format yaratılcak. birinci ayagı ios button click event de bu formata uygun veri gonderilecek. sormak istedigim, ikinci ayagı, .NET tarafında bu ortamı nasil hazırlayacagım. şayet bu konu geniş uzun bir konu ise tam olarak istedigim yapı için beni dogru yere yonlendirebilir misiniz?

    mesela tam olarak bu mudur?

    http://www.codeproject.com/Articles/659131/Understanding-and-Implementing-ASPNET-WebAPI

    şayet uzun degil ise bir örnek paylaşabilir misiniz?

    tesekkurler

    selcuk


    help !!

    30 Nisan 2014 Çarşamba 16:00

Yanıtlar

  • web api güzel bir çözüm ama bu durumda Azure Mobile Services'a bakman idaha yi olabilir.

    cevapların:

    1. rest dediğin şey web zaten. Nasıl hotmail de güvenliği sağlıyorsan aynı şekilde ileteceksin. 1 defa giriş yapınca token vereceksin bir daha iletişim o token üzerinden olacak her seferinde mail-parola yollamayacaksın yani.

    2.  rest servislerin çağırımı http standartlarındadır. ister ios dan çağır ister linuxdan fark etmez. 

    30 Nisan 2014 Çarşamba 17:01
    Moderatör

Tüm Yanıtlar

  • web api güzel bir çözüm ama bu durumda Azure Mobile Services'a bakman idaha yi olabilir.

    cevapların:

    1. rest dediğin şey web zaten. Nasıl hotmail de güvenliği sağlıyorsan aynı şekilde ileteceksin. 1 defa giriş yapınca token vereceksin bir daha iletişim o token üzerinden olacak her seferinde mail-parola yollamayacaksın yani.

    2.  rest servislerin çağırımı http standartlarındadır. ister ios dan çağır ister linuxdan fark etmez. 

    30 Nisan 2014 Çarşamba 17:01
    Moderatör
  • cevap için teşekkürler. size bir kaç sorum daha olacak..

    +sanırım tam olarak ihtiyacım olan windows azure mobile services - custom API, dogru mudur?

    +hali hazırda yayında olan, asp.net 4.0, entity framework ile tasarlanan web projesine bu api yi entegre edebilir miyim? yoksa 4.5 filan olması gerekiyor projenin?

    bir de bu custom API yi develop yapacagım sdk visual studio 2010 da olabilir mi? yoksa visual studio 2012 filan mi gerekiyor?

    selcuk


    help !!

    30 Nisan 2014 Çarşamba 17:54
  • .net 1.0 ile bile rest api yapabilirsiniz. Web Api sadece işin biraz daha otomatik hale getirilip bir kütüphaneye bağlanması sadece. 

    Web Api kütüphanesi kullanacaksanız kendisi hangi framework sürümünü istiyorsa onu kurun.

    Eski projenizi kullanabilirsiniz. Visual studio tarafında 2013 kullanın neden 2010 ? 2012?

    2 Mayıs 2014 Cuma 10:15
    Moderatör
  • inceledigim tutoriallar da Individual-User-Account diye bir ara yüz vardı. sandım ki o yüzden 2012-2013 gerekiyor.

    vaktiniz olursa, size sormak istedigim bir şey var, normal bir login işlemi işlemi ile web api ile yapılan bir login işleminin farkı teknik olarak nedir? login olaylarında token denilen şeyin tam olarak işlevi nedir?

    tskrler.

    selcuk


    help !!

    5 Mayıs 2014 Pazartesi 12:38
  • Tekrar ediyorum. Rest dediğin şey WEB zaten. Normal bir siteye bir kişiyi nasıl login edebiliyorsan aynı şekilde login edersin. Ama rest sorguları ile cookie taşımak pek güzel olmayacağından session id mantığını uygulayabilirsin. Kişi login olduğunda o kişi için bir access token oluşturursun. Bir sonraki isteğinde adam sana bu token ile gelirse kim olduğunu bildiğin için tekrar takrar sormazsın. Bunun yanı sıra istersen her sorguda giriş bilgisi isteyebilirsin. Http sevisyesinde giriş yaptırabilirsin. Ya da private key - public key  ikilisini kullanabilirsin. OAuth frameworklerini kullanabilirsin.. Yol yöntem çok. En iyi diye bir şey yok.
    7 Mayıs 2014 Çarşamba 06:45
    Moderatör
  • Tekrar ediyorum. Rest dediğin şey WEB zaten. Normal bir siteye bir kişiyi nasıl login edebiliyorsan aynı şekilde login edersin. Ama rest sorguları ile cookie taşımak pek güzel olmayacağından session id mantığını uygulayabilirsin. Kişi login olduğunda o kişi için bir access token oluşturursun. Bir sonraki isteğinde adam sana bu token ile gelirse kim olduğunu bildiğin için tekrar takrar sormazsın. Bunun yanı sıra istersen her sorguda giriş bilgisi isteyebilirsin. Http sevisyesinde giriş yaptırabilirsin. Ya da private key - public key  ikilisini kullanabilirsin. OAuth frameworklerini kullanabilirsin.. Yol yöntem çok. En iyi diye bir şey yok.

    sanırım konuyu farklı yerlere getirmiş oldum. kusura bakmayın. Daha önce bir çok sayfada user authentication kullandım. Bunu da asla www.abc.aspx?email=qq@qq.com&password=123 gibi yapmadım.
    Email ile Password u session ile tasiyip, database sorgulayıp basarili ise Session["userID"] gibi bir şey tanımlayıp user in unique alanını olan ID degerini buna set ettim.
    Sormak istedigim 1.SORU bu Session["userID"] token dediginiz şey oluyor dogru mu?

    bildiginiz üzere, asp.net sayfası içinde bu şekilde olabiliyor. ya mobil bir cihazdan login için gerekli sorgulamayı mssql veritabanına yapmam gerekiyorsa, ve bunu asp sayfaları ile yapmam gerekiyorsa. ne yapmam gerekiyor?sanırım bunun da bir sürü alternatifi var. benim sormak istedigim POST metoduna post header ekleyerek sorguyu göndermek ve bunu asp tarafında okuyabilmek.istedigim tam olarak bu

    araştırdıgım üzere şunun gibi bir request mobilden asp tarafına gelecek

    $(function () {
        var customer = {email :"s.selcuk@hotmail.com",password:"123"};
        $.ajax({
            type: "POST",
            data :JSON.stringify(customer),
            url: "api/Customer",
            contentType: "application/json"
        });
    });
    

    2.SORU yukarıdaki kod için post header şu mudur? 

    contentType: "application/json"

    3.SORU: yukarıdaki şekilde customer objesini request olarak POST etmek login işlemi için güvenli bir yöntem midir? 

    tesekkürler,

    selcuk


    help !!

    7 Mayıs 2014 Çarşamba 08:19