ASP.NET MVC Returnurl

24 Nis

Web sayfalarımızda korunan bazı sayfalara yönlendirme yapan bağlantılara(link) tıklandığında, bu sayfanın koruma altında olduğunu belirtmek amacıyla kullanıcıyı sistem giriş sayfasına yönlendiririz. Kullanıcı, giriş yaptıktan sonra en son kaldığı sayfayı hatırlamayabilir. Bu gibi durumlar, genelde forum sayfalarına girdiğimizde karşımıza gelir. İstediğimiz konuyu görmek istediğimizde üye giriş sayfasına yönlendiriliriz ve giriş yaptıktan sonra kaldığımız yerden devam ederiz. Giriş yapıldıktan sonra kaldığımız sayfaya yönlendirilmezsek, tekrar arama motoruna gidip konu linkine tıklamak zorunda kalabiliriz.

Kendi hazırladığımız sistemlerde de bu gibi bir durum başımıza geldiğinde, üye giriş yaptığında son kaldığı sayfaya yönlendirilmesi gerektiğinde ne yapmalıyız?

ASP.NET MVC ile hazırlanan sistemlerde login işlemi sonrası en son geldiğimiz sayfaya yönlendirme yapmak için, en son sayfa URL’i returnUrl adında bir değişkende tutulur.

public ActionResult LogOn(LogOnModel model, string returnUrl)
{
      if (Membership.ValidateUser(model.UserName, model.Password))
      {
         if (!string.IsNullOrEmpty(returnUrl))
         {
              return Redirect(returnUrl);
         }
         else
         {
              return RedirectToAction("Index", "Home");
         }
      }

      return View(model);
}

Eğer returnUrl parametresi boş değilse direk o sayfaya yönlendirme yapılır, boş ise Index sayfasına yönlendirilir.

Bu durumda akla gelen ilk soru “link üzerinde returnUrl parametresi nasıl ayarlanmalı?” olacaktır.

@Html.ActionLink(“Giriş”, “LogOn”, “Account”, new { returnUrl=Request.RawUrl }, null)

Request.RawUrl property’sini returnUrl olarak belirliyoruz. Örneğin ürünler sayfasında bir işlem yaparken, giriş yapılması istenirse, kullanıcı adı ve şifre girildikten sonra tekrar ürünler sayfasına yönlendirilmiş oluruz.

Eğer login işlemi sonrasında direk Index sayfasına yönlendirilsin istiyorsak link aşağıdaki gibi olmalıdır.

@Html.ActionLink(“Giriş”,”LogOn”, “Account”)

Tekrar görüşmek ümidiyler…