Ana içeriğe geç

Password

Şifre, parola, PIN ya da gizli anahtar gibi başkalarının görmemesi gereken metinleri girmek için kullanılan nesnedir. Yazılan karakterler ekranda yıldız () olarak görünür.

Değer tipi: string

Ne zaman kullanılır?

Ekranda açıkça görünmemesi gereken her türlü gizli metin için kullanın: parola, PIN, gizli kod. Sıradan ve görünür metinler için TextBox, belirli bir biçim gereken alanlar için MaskInput daha uygundur.

Tasarımcı özellikleri

Bir Password seçildiğinde Özellik Görüntüleyici sekmelere ayrılır.

General

ÖzellikAçıklama
NameNesnenin koddaki adı (ör. Password1). Koddan bu adla erişirsiniz.
Field NameVeritabanındaki alanın adı.
SizeAlanın veritabanındaki uzunluğu.

Label

Nesnenin yanındaki etiketi yönetir.

ÖzellikAçıklama
Caption / TextEtiketin yazısı (çok dilli olabilir).
PositionEtiketin yeri: solda (Left) veya üstte (Top).
Width / HeightEtiketin boyutu.
FontYazı tipi, kalın / italik / altı çizili.
Show ColonEtiketin sonuna iki nokta (:) ekler.
Horizontal Align / Vertical AlignEtiketin hizası.
VisibleEtiketi gösterir veya gizler.

Behavior

ÖzellikAçıklama
Is Secret DataDeğeri hassas veri sayar; loglarda ve geçmişte gizlenir. Şifre alanlarında açık tutulması önerilir.
MaxLengthEn fazla kaç karakter girilebileceğini sınırlar.
ReadOnlyAlanı salt okunur yapar.
RequiredAlanı zorunlu yapar; boşsa form kaydedilmez.
Tab IndexTab tuşuyla geçiş sırasını belirler.
Visibility ToggleAlanın yanına bir "göster/gizle" düğmesi ekler; kullanıcı yazdığı şifreyi geçici olarak görebilir.

Appearance

ÖzellikAçıklama
Visible / Client VisibleNesnenin görünürlüğü.
Enabled / Client EnabledNesnenin aktif olup olmadığı.
PlaceholderAlan boşken görünen soluk ipucu yazısı.
TitleNesnenin üzerine gelince çıkan başlık (tooltip).
Text AlignYazının hizası.
Size TypeGenişlik davranışı (sabit / esnek).

Olaylar

Bir nesne açılırken olaylar belirli bir sırayla tetiklenir; kullanıcı alana dokununca da ayrı olaylar çalışır. Doğru kodu doğru olaya yazmak için bu sırayı bilmek işinizi kolaylaştırır.

Açılış sırası: OnInitOnLoadOnDataLoadOnPreRenderOnRender

Kullanıcı yazarken: OnTextChangingOnTextChanged, alandan çıkınca OnValueChangingOnValueChanged

Olaylar iki tarafta çalışabilir: sunucu olayları C# kodunda, istemci olayları tarayıcıdaki TypeScript kodunda. Password'ün iki tarafta sunduğu olaylar farklıdır.

Sunucu olayları (Server)

OlayNe zaman çalışır
OnInitForm açılırken nesne oluşturulduğunda, en başta.
OnLoadOnInit'in hemen ardından, nesne yüklenince.
OnRenderNesne ekrana çizilirken.
OnTextChangingKullanıcı yazarken, metin değişmeden hemen önce.
OnTextChangedMetin değiştikten hemen sonra.
OnValueChangingDeğer değişmeden hemen önce (iptal edilebilir).
OnValueChangedKullanıcı alandan çıkıp değer kesinleştiğinde. En sık kullanılan olaydır.
OnValidatingDeğer doğrulanırken; geçersiz girişleri burada engelleyebilirsiniz.

İstemci olayları (Client)

Sunucudaki olaylara ek olarak tarayıcı tarafında şunlar da vardır:

OlayNe zaman çalışır
OnDataLoadNesnenin verisi yüklendiğinde.
OnPreRenderNesne ekrana çizilmeden hemen önce.
OnClick / OnDoubleClickNesneye tıklanınca / çift tıklanınca.
OnPropertyChanging / OnPropertyChangedBir özellik kodla değiştirilmeden önce / sonra.
Olay parametreleri

OnValueChanging / OnTextChanging olaylarının parametresi (args TS, e C#) şunları taşır:

  • newValue / NewValue — girilmek istenen yeni değer
  • oldValue / OldValue — önceki değer
  • cancel / Canceltrue yapılırsa değişiklik iptal edilir (yalnızca Changing olaylarında)

Changed olaylarında cancel yoktur (değişiklik artık gerçekleşmiştir).

Kod örnekleri

Bir Password'e üç yerden erişebilirsiniz. Sunucu örnekleri turuncu, istemci örnekleri kırmızı çerçevelidir.

Form kodu (C#, sunucu)

Form kodunda nesneye doğrudan adıyla erişirsiniz:

// Oku
string sifre = Password1.Value.ToString();

// Yaz
Password1.Value = "gizliParola123";
Password1.Text = "gizliParola123";

Akış (Flow) kodu (C#, sunucu)

Akış kodunda nesneye Document1.Controls üzerinden erişirsiniz:

// Oku
string sifre = Document1.Controls["Password1"].Value.ToString();

// Yaz
Document1.Controls["Password1"].Value = "gizliParola123";
Document1.Controls["Password1"].Text = "gizliParola123";

İstemci kodu (TypeScript, tarayıcı)

İstemci tarafında nesnelere this. ile erişilir ve özellik adları küçük harfle yazılır (value, text):

this.Password1.value = "";
this.Password1.text = "";
.Value mi .Text mi?

.Value saklanan değerdir, .Text ekranda görünen metindir. Password için ikisi de string'tir; yazarken ikisini de aynı değerle set etmeye özen gösterin.

Örnek: en az karakter kuralı (OnValueChanging)

OnValueChanging değer değişmeden hemen önce çalışır; kuralınıza uymayan bir değeri burada iptal edebilirsiniz. Aşağıdaki örnekte 6 karakterden kısa şifreler engellenir.

İstemci (TypeScript):

async Password1_OnValueChanging(args: Controls.EventArgs.IPropertyChangingEventArgs<string>) {
if (args.newValue != null && args.newValue.length < 6) {
args.cancel = true; // Değişimi iptal eder
this.showMessage("Uyarı", "Şifre en az 6 karakter olmalıdır.", "Validation");
}
}

Sunucu (C#):

void Password1_OnValueChanging(object sender, PropertyChangingEventArgs<string> e)
{
if (e.NewValue != null && e.NewValue.Length < 6)
{
e.Cancel = true;
ShowMessage("Uyarı", "Şifre en az 6 karakter olmalıdır.",
Bimser.CSP.FormControls.RuleManager.AlertType.Validation);
}
}

İpuçları

  • Is Secret Data özelliğini açık tutun; böylece girilen şifre loglarda ve doküman geçmişinde gizlenir.
  • Kullanıcının yazdığını kontrol etmesi gerekiyorsa Visibility Toggle özelliğini açarak "göster/gizle" düğmesi ekleyin.
  • Şifre alanını zorunlu yapmak için kod yazmanıza gerek yok; Required özelliğini açmanız yeterlidir.
Tüm tasarımcı özellikleri (tam liste)

General: Name, Field Name, Size

Label: Caption, Text, Position, Left, Width, Height, Font (Bold / Italic / Underline), Ellipsis, Visible, Show Colon, Horizontal Align, Vertical Align, Mark Char, Mark Position

Behavior: Is Secret Data, MaxLength, ReadOnly, Required, Tab Index, Visibility Toggle

Appearance: Client Enabled, Client Visible, Enabled, Placeholder, Size Type, Text, Text Align, Title, Value, Visible

Olaylar (Client): OnInit, OnLoad, OnPreRender, OnRender, OnPropertyChanging, OnPropertyChanged, OnClick, OnDoubleClick, OnDataLoad, OnValueChanging, OnValueChanged, OnTextChanging, OnTextChanged, OnValidating

Olaylar (Server): OnInit, OnLoad, OnRender, OnValueChanging, OnValueChanged, OnTextChanging, OnTextChanged, OnValidating