Bu makalede;
1- Veri tabanına kullanıcı tablosu oluşturup, üye olacak kullanıcıların bilgileri veri tabanımıza kayıt edeceğiz.
2- Kullanıcı kayıt ekranında User Name alanını Email ile değiştireceğiz.
3- Kullanıcı kayıt esnasında username password dışında isim ve soyisim alanlarını veri tabanımızda otomatik oluşturup bu alanlara kayıt bilgilerini alacağız.
ÜYE GİRİŞİ MAKALEMİZ
1- İlk olarak New Project - Web - ASP.NET Web Application yolunu izleyerek .Net Framework 4.5.1 de bir proje oluşturuyoruz.
2- MSSQL'de boş bir veri tabanı oluşturuyoruz.
3- Models klasörünün üzerinde sağ tuşa basıp, Add - ADO.NET Entity Data Model i seçiyoruz.
MSSQL bağlantı ayarlarını tamamlayıp biraz önce oluşturduğumuz boş veri tabanını seçiyoruz.
Web.Config dosyamıza gelerek buradaki DefaultConnection'i bir alt satırda oluşan ProjeEntities'den yaralanarak aşağıdaki gibi size uygun bir şekilde güncelliyorsunuz.
4- Isim ve Soyisim alanlarını ilk üye kaydolurken otomatik açılması ve daha sonra kodlarımızın içerisinde bu alanalrı kullanmak için IdentityModels.cs Dosyamızı aşağıdaki şekilde güncelliyoruz. Siz bu alana isterseniz cinsiyet, yaş, adres gibi bilgilerde ekleyebilirsiniz.
public class ApplicationUser : IdentityUser { public string Isim { get; set; } public string SoyIsim { get; set; } }
5- User Name alanını biz mail adresini tutmak için kullanacağız. Bu yüzden AccountController'da aşağıdaki değişlikliği yapıyoruz. Bu değişiklik sayesinde username alanında @ karakteri kullanabileceğiz.
public AccountController(UserManager<ApplicationUser> userManager) { UserManager = userManager; var userValidator = UserManager.UserValidator as UserValidator<ApplicationUser>; userValidator.AllowOnlyAlphanumericUserNames = false; }
6- AccountViewModels.cs dosyamızda
[Required] [Display(Name = "User name")] public string UserName { get; set; }
yazan kısımları
[Display(Name = "Email adresiniz")] [Required(ErrorMessage = "Email adresini yazmalısınız")] [EmailAddress(ErrorMessage = "Geçersiz mail adresi")] public string UserName { get; set; }
ile değiştiriyoruz. Bu şekilde sitemize üye olmak isteyen kullanıcı UserName kısmına doğru email adresi yazmak zorunda kalacaktır. UserName Kısmı birden fazla olduğu için tümünü değiştirmelisiniz.
6- Aynı dosyamızın içerisinde bulunan RegisterViewModel fonksiyonuna aşağıdaki kodları ekliyoruz.
[Required] [Display(Name = "Isim")] public string Isim { get; set; } [Required] [Display(Name = "SoyIsim")] public string SoyIsim { get; set; }
7- Views - Account klasöründe bulunan Register.cshtml dosyamıza aşağıdaki kodları ekliyoruz.
<div class="form-group"> @Html.LabelFor(m => m.Isim, new { @class = "col-md-2 control-label" }) <div class="col-md-10"> @Html.TextBoxFor(m => m.Isim, new { @class = "form-control" }) </div> </div> <div class="form-group"> @Html.LabelFor(m => m.SoyIsim, new { @class = "col-md-2 control-label" }) <div class="col-md-10"> @Html.TextBoxFor(m => m.SoyIsim, new { @class = "form-control" }) </div> </div>
Kodları UserName Kısmından önce ekleyebilirsiniz.
8- Son olarak isim ve soyisim alanlarını kullanıcı kayıt sırasında veri tabanımıza eklenmesi için
var user = new ApplicationUser() { UserName = model.UserName };
yukarıdaki kodu aşağıdaki kod ile değiştiriyoruz.
var user = new ApplicationUser() { UserName = model.UserName, Isim = model.Isim, SoyIsim = model.SoyIsim };
Kayıt Sayfamızın görünümü.
Kayıt işleminden sonra veri tabanımızın görünümü.
Kayıt edilen veri.