Merhaba,

Geliştirmekte olduğumuz MVC 4 uygulamasında isteğe göre form yada windows authentication yapılmasını sağlamaya çalışıyoruz. Form authentication yaptığımızda login olan kullanıcının login log bilgisini db ye kaydediyoruz. Fakat Windows authentication 'a geçtiğimizde 'HttpContext.Current.User.Identity.IsAuthenticated' özelliği true oluyor ve sisteme giriş yapabiliyor, buraya kadar bir sıkıntı yok. Tek eksik olan kullanıcı authentication olduğu anda login logunu db ye yazdırmak kalıyor. Bunu nerde yakalatıp db ye yazdırabiliriz.

Teşekkürler

soruldu: 23 Eki '15, 05:05

M%C3%BCsl%C3%BCm%20%C3%96ZT%C3%9CRK's gravatar image

Müslüm ÖZTÜRK
10.6k103690
cevap kabul oranı: 28%


HttpApplication.AuthenticateRequest Event veya HttpApplication.PostAuthenticateRequest Event eventleri muhtemelen işinizi görücektir.

Örnek Kullanım :

  protected void Application_Start()
{
    PostAuthenticateRequest += Application_PostAuthenticateRequest;
}

protected void Application_PostAuthenticateRequest(object sender, EventArgs e)
{
    if(User.Identity.IsAuthenticated)
    {
        //Loglama işleminin yapılacağı yer
    }
}
permanent link

cevaplandı: 23 Eki '15, 14:22

ArnesTwin's gravatar image

ArnesTwin
1.1k1511
cevap kabul oranı: 14%

1/2 -> Öncelikle ilginiz için teşekküer ederim. AuthenticateRequest eventini kullandığımda şöyle bir hata veriyor "[NullReferenceException: Object reference not set to an instance of an object.] System.Web.PipelineModuleStepContainer.GetStepArray(RequestNotification notification, Boolean isPostEvent) +22 System.Web.PipelineStepManager.ResumeSteps(Exception error) +1324 System.Web.HttpApplication.BeginProcessRequestNotification(HttpContext context, AsyncCallback cb) +95 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +186"

(24 Eki '15, 05:04) Müslüm ÖZTÜRK M%C3%BCsl%C3%BCm%20%C3%96ZT%C3%9CRK's gravatar image

2/2 -> PostAuthenticateRequest eventini daha öncesinde denemiştim aslında bu eventini kullanıdığımda şöyle bir durum ortaya çıkıyor: her bir requestimde action çalışadan önce bu event tekikleniyor. Eğer böyle olursa her action çalışmadan önce db ye log atmış olurum.. Ki login logları sadece kullanıcı login olduğunda atılması gerekmektedir. tekrar teşekkürler

(24 Eki '15, 05:11) Müslüm ÖZTÜRK M%C3%BCsl%C3%BCm%20%C3%96ZT%C3%9CRK's gravatar image

protected void FormsAuthentication_OnAuthenticate(Object sender, FormsAuthenticationEventArgs e) {

    }

Bu eventi deneyebilirsiniz. Bu arada bu eventler sizin de dediğiniz gibi [Authorize] attribute tanımlanmış her actionda tetiklenicektir. Bu yukarda verdiğim event de muhtemelen aynı mantıkla tetikleniyor ama gene de bir deneyin. Eğer çalışmazsa, online kullanıcıları tutan bir sınıf yazmanız gerekebilir.

(24 Eki '15, 08:23) ArnesTwin ArnesTwin's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×47
×11

Soruldu: 23 Eki '15, 05:05

Görüntüleme: 1,542 kez

Son güncelleme: 24 Eki '15, 08:23

powered by BitNami OSQA