Asp.NET Twitter Login

Asp.NET Twitter Login

Bu makalede ASP.Net ile Twitter ile login nasıl olunuru göreceğiz. Ücretsiz ASPSnippets Twitter API ve Twitter OAUTH APIlerini kullarak  Twitter hesap detayları, profil bilgileri, resim, ekran ismi, Twitter Id, ad, açıklama, arkadaş sayısı ve takipçi sayısı verilerini çekeceğiz. (daha&helliip;)

Html form button elemanını code-behind sayfasında çağırmak

Html form button elemanını code behind sayfasında çağırmak

Aklınıza <asp:button> elemanı varken bunu neden yapayım diye bir soru gelebilir. Ancak durum hiçte göründüğü gibi değil bir örnek vermek gerekirse. Diyelim ki bir formunuz var ve bu formdaki alanların kontrolünü veya doğrulamasını Html5 validation özelliklerini kullanarak yaptınız. Fakat sayfanıza iki veya daha fazla butonlarınız var. Birinci buton formu post etsede ikinci buton farklı bir işlev yapıyor olacak.  İkinci butona tıkladığınızda sizden validation kontrollerini doğrulamanız istenecek fakat siz bu butonlar başka bir olay yapıyordunuz. İlk çözüm butona formnovalidation eklemek olacaktır. Bu sayede bu buton bağımsız olarak çağrılmış olacak. Sayfayı chrome ve firefox’ta açtınız. Herşey yolunda fakat bir de IE’de açın. O da ne ? Çalışmıyor mu ? Merak etmeyin bununda çözümü var. İsterseniz çözümü bu http://msdn.microsoft.com/en-us/library/ie/hh772935(v=vs.85).aspx bağlatıdan detaylı olarak inceleyebilirsiniz. IE ‘de <asp:button> elamanına verilen bu özellik desteklenmiyor. Html form elemanı olan bir elemana verildiğinde ise tıkır tıkır çalışıyor. Önce html butonumuza formnovalidate özeliği atıyoruz daha sonra onclick=”__doPostBack(‘btnSubmit’, ‘Giris’);” özelliğini atıyoruzki post olduğunda code behinde sayfasından çağrılabilsin.

Code behind sayfamızda reques form diyerek butonumuzu çağırdıktan sonra çalışmasını istediğimiz metod veya fonksiyonu çağırıyoruz.

Hmtl :

<input id=”Submit1″ type=”submit” value=”submit” formnovalidate name=”save” runat=”server” onclick=”__doPostBack(‘btnSubmit’, ‘Giris’);”/>

Code behind :

protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
if (Convert.ToString(Request.Form[“__EVENTARGUMENT”]) == “Giris”)
{
Face_log();//submit action here
}
}
}

public void Face_log()
{
Response.Redirect(“defaul.aspx”);
}

Kolay gelsin

Sorular Cevaplar (1)

Sorular Cevaplar (1)

ResolveUrl – ResolveClientUrl farkı nedir ?

ResolveUrl root’a bağlı url yaratır. ResolveClientUrl ise bulunulan sayfaya bağlı url yaratır.

@font-face ie’de neden çalışmaz ?

Projenizde yer alan fontun uzantısı .otf değilse ie’de çalışmayacaktır.

Html5 novalidate ie’de çalışmıyor

W3scholls yazdığına göre novalidate ie 10 tarafından destekleniyormuş. IE 11 yani son ie’nin son versiyonunda bile hala desteklenmiyor. Aşağıdaki kullanım işinizi görecektir.

<input type="submit" formnovalidate name="save"  />

Bu http://msdn.microsoft.com/en-us/library/ie/hh772935(v=vs.85).aspx bağlantıdan detaylı bilgi edinebilirsiniz.

Ayrıca konuyla ilgili http://abdulhamiterdogan.wordpress.com/2014/10/14/html-form-button-elemanini-code-behind-sayfasinda-cagirmak/ makalede işinize yarayabilir.

Css ile input button value text ‘i nasıl gizlenir ?

textindent:-9999px;

IE Facebook login olduktan sonra boş pop up döndürüyor.

IE -> Internet Options -> Security tab -> Local intranet -> (check) Enable protected mode

InterpolationMode ne demek ?

Bir resim döndürüleceği veya ölçeklendirileceği zaman kullanılan algoritmayı belirleyen numarlandırmadır.

HighQualityBicubic ne demek ?

Bu mod resimleri yüksek kalitede dönüştürür.

Javascript ile önceki sayfaya nasıl dönerim ? 

<script>
     function goBack() {
      window.history.back()
}
</script>

Javascript request url değeri nasıl alınır ? 

var data = ‘<%=this.Request.QueryString[“deger”]%>’;

Master Page’de yer alan User Control nasıl gizlenir ? 

 ((UserControl)this.Master.FindControl(“AutoComplete1”)).Visible = false;

ASP.Net’de belirli bir session nasıl kapatılır ?

Session.Remove(“SessionDegeri”) yada Session[“SessionDegeri”] = null;

fckEditor’de araç çubuğunu kapatıp açan butonu nasıl kaldırabilirim ?

fckconfig.js > FCKConfig.ToolbarCanCollapse = false ;

fckEditor kopyalama ve yapıştırma (Copy-Paste) nasıl engellenir ? 

fckconfig.js :

FCKConfig.Keystrokes = [

  [ CTRL + 67 /C/, false ],

  [CTRL + 86 /V/, false],

] ;

Bir javascript içerisindeki object sayısı nasıl hesaplanır ?

Object.keys(myObject).length

Javascript içerisinde bir değişkenin tanımlı olup olmadığı (defined/undefined) nasıl kontrol edilir.

if(typeof degisken === “defined”) / if(typeof degisken === “undefined”)

Textbox filtreleme (mask) nasıl yapılır ?

<input type="text" name="field-name" data-mask="00/00/0000" />

data-mask içerisindeki karakter ve sayıları değiştirerek size lazım olan türe göre maskeleyebilirsiniz.

Javascript bind ne yapar ?

bind() bir yada daha fazla olay tutucuyu (event handler) seçilen elemana bağlayarak, olay (event) meydana geldiğinde fonksiyonun çalışmasını sağlar.

JQuery 1.7 versiyondan sonra on() metodu bu metodun yerine tercih edilmiştir.

CheckBox display=”none” sorunu

Javascript kodları ile checkbox nesnesi görünmez yapmak için display özelliğinden yararlanırız. Ancak bu özellik label ve textbox ile olan kullanımdan biraz farklıdır. Örn ;

 document.getElementById(“<%= TextBox1.ClientID %>”).style.display = “none”;

Yukarıdaki satır bir textbox veya label kontrolünü görünmez yapmak için yeterlidir. Fakat Aynı yöntemi checkBox’a uyguladığımızda checkbox textinin silinmediğini ve check işareti konulan kutucuğun kaybolduğunu göreceğiz. Tüm checkbox’ı görünmez yapmak için :

 document.getElementById(“<%= TextBox1.ClientID %>”).parentNode.style.display = “none”;

şeklinde bir kullanım işimizi görecektir.

Kolay gelsin

ASP.Net Html5 girilen değerleri sınırlama

Bazen kullanıcıdan textboxa sınırlı değer girmesini isteriz. Bu durumu karmaşık yollara sapmadan ve hızlı bir şekilde çözmek için Html5 özelliklerinden faydalanabiliriz. Bunun için aslında toolbox’ta yer alan Validation kontrollerinden yararlanabilirdik fakat bu kontroller server-Side çalıştığı için efektif değiller ve kod kalabalığına neden oluyorlar. En iyisi Html5‘in bu özelliğinden faydalanmak olacaktır. Html5 ile gelen tüm özellikler her tarayıcı tarafından desteklenmediği için yazdığımız kodları silip baştan yapmamak için dikkatli olmak lazım ama bu özellik kullanılabilir.

Şifreyi 6 karakter ile sınırlama
<asp:TextBox ID=”txbSifre” runat=”server”  TextMode=”Password” Width=”200px”
title=”Şifre en az 6 karakterli olmalıdır” pattern=”^.{6}$” > </asp:TextBox>

Şifreyi 6-10 arası karakter ile sınırlama

<asp:TextBox ID=”txbSifre” runat=”server”  TextMode=”Password” Width=”200px”
title=”Şifre en az 6 karakterli olmalıdır” pattern=”^.{6,10}$” > </asp:TextBox>

Asp.Net Javascript ile label ve textbox değerini değiştirmek

  1. Textbox çağrılır

     var test = document.getElementById(“<%= TextBox1.ClientID %>”);

    test.value = “İçerik”; //içerik değiştirilir

  2. Label çağrılır

    var test = document.getElementById(“<%= Label1.ClientID %>”); 

    test.InnerHtml  = “İçerik”; //içerik değiştirilir

Aradaki fark label kontrolüne değer verirken InnerHtml, textbox’ta ise value metodlarını kullanmaktır.

Not : Bazen verdiğimiz değerlerin kullanıcıya görünmesini istemeyiz. Bunun için properties tablosundan visible özelliğini false yapmamız yeterliydi. Ancak bu durumda Javascript kontrolümüzü tanımayacak veya görmeyecektir. Peki ne yapacağız ? Gizleme özelliğini JavaScript kodları içerisinden verirsek bu sorunu aşmış olur. Örn ;

Label1.style.display = “none”;

Kolay Gelsin

Html5 validation buton click sorunu

Html5 validation (doğrulama) kontrolleri bizi birçok Javascript kodu yazmaktan veya Ajax araçlarını kullanmaktan kurtaran mükemmel özelliklere sahiplerdir. Kullanımları oldukça basittir. Makalenin amacı bu olmadığı için detaya girmiyorum fakat bu konu hakkında güzel bir makale için linke göz atabilirsiniz.

http://www.codeproject.com/Tips/543391/HTML-for-Asp-net-Csharp-Developers

Html5 özellikerini kullanmak oldukça kolaydır. Özellikler Client-side çalıştığı için performans açısından çok etkilidir. Ancak en büyük sorunu farklı tarayıcılara olan uyumsuzluk problemidir. İnşallah tüm tarayıcılar en kısa zamanda entegre olurlar.
Bunun  yanında bir problem daha var ki bazen saç baş yoldurabilir. Sayfanızda farklı eventlere birden fazla buton varsa hangisine tıklarsanız tıklayın sizden validation kontrolü eklenmiş textbox doğrulaması istenecektir. Çözümü oldukça basit;

<asp:ImageButton ID=”ImageButton1″ runat=”server” formnovalidate=”formnovalidate” />

Kolay gelsin

Şifre birkaç kez yanlış girildikten sonra Captcha çıkarmak

Login formunda spam-botları engellemek için captcha kullanımı daha önce görmüştük. reCaptcha kullanımı linkine tıklayarak ilgili makaleye göz gezdirebilirsiniz. Şimdi de kullanıcı şifresi üç kere yanlış girildikten sonra captca doğrulmasının kullanılmasını görelim.

<%@ Page Language=”C#” AutoEventWireup=”true” CodeFile=”Default.aspx.cs” Inherits=”_Default” %>

<!DOCTYPE html>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head runat=”server”>
    <title></title>
</head>
<body>
    <form id=”form1″ runat=”server”>
    <div>
        <asp:TextBox ID=”TextBox1″ runat=”server”></asp:TextBox>
        <asp:Label ID=”Label1″ runat=”server” Text=”Label”></asp:Label>
    </div>
        <asp:TextBox ID=”TextBox2″ runat=”server”></asp:TextBox>
        <asp:Button ID=”Button1″ runat=”server” OnClick=”Button1_Click” Text=”Button” />
    </form>
</body>
</html>

Code Behined

using System;
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        lblResult.Visible = false;
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        int c=1;
        if (TextBox1.Text == “sharad” && TextBox2.Text == “gupta”)
        {
            Response.Redirect(“a.aspx”);
        }
        else
        {
            lblResult.Visible = true;
            lblResult.Text = “Kullanıcı adı veya şifre hatalı”;
            Session[“counter”] = Convert.ToInt32(Session[“counter”] )+ c;
            if (Convert.ToInt32(Session[“counter”]) > 5)
            {
RecaptchaControl1.Visible = true;
RecaptchaControl1.Validate();
if (RecaptchaControl1.IsValid)
{
lblResult.Text = “OKEY”; return;
}

else
return;

            }
        }
    }
}
Biz burada değerimizi Session ile sakladık. Dilerseniz alternatif yöntemleri kullanabilirsiniz. Aşağıdaki linkte viewstate kullanımı bu alternatiflere bir örnektir.

POSTBACK ESNASINDA DEĞERLER NASIL SAKLANIR ? VİEWSTATE NEDİR ?