benim Global.asax dosyanın Application_BeginRequest
kullanıcı nesnesine bir başvuru almaya çalışıyorum. Context.User
özelliğini kullanıyorum ancak NullReferenceException
aldım. Application_BeginRequest'te bir kullanıcı nesne başvurusu almak mümkün mü?.NET Application_BeginRequest - Kullanıcı referansı nasıl alınır?
cevap
Sen Kullanıcı nesnesine erişimi yoktur.
yerine Application_AuthenticateRequest kullanmayı deneyin. https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-5771721.htmlVe uygulama yaşam döngüsünün MSDN örneklerde: Burada
tüm Global.asax olayların bir açıklama var http://msdn.microsoft.com/en-us/library/ms178473.aspxDüzenleme: ne yaptığınızı görüyorum. değil beyanı (sözdizimi yanlış üzgün, ben VB.NET kullanmayın) ve eğer varsa deyimi değiştirin:
Sub Application_AuthenticateRequest()
If Context.User <> Nothing Then
Throw New Exception("User now exists")
End Sub
Bu yöntem kereden fazla çarparsa olduğunu göreceksiniz. İstisna ikinci veya üçüncü saate kadar atılmaz. Çünkü her talep uygulama yaşam döngüsünü takip eder. Bu nedenle, kullanıcı boş olduğunda hangi eylemi gerçekleştirmek yerine, kullanıcı boş olmadığında onu gerçekleştirmelisiniz. Amacınız dinamik erişimi kısıtlamak için ise
, size Ancak
kısıtlayan ediyoruz dosyaları ayrı HttpModule'ü oluşturup aktarmayı unutmayın, tüm yeniden üstlenmek için dikkatli olmak gerekir ASP.NET Uygulama Güvenliği altyapısı. Bunun yerine, role göre belirli klasörlere erişimi kısıtlayabilirsiniz.
Hayır, bunun yerine Application_AuthenticateRequest
kullanmalıdır. Bir kullanıcın olduğu en erken noktadır. istek henüz doğrulanmış değil çünkü
Bu bir istisna, hala hiçbir kullanıcı veya ne atar? Alt Uygulama_AuthenticateRequest() Context.User Hiçbir Şey Olmuyorsa Yeni Özel Durum Atın ("Kullanıcı Yok") End Sub – Ropstah
- 1. Kod referansı nasıl alınır?
- 2. Kurucuya kod referansı nasıl alınır?
- 3. react-native-fbsdk - kullanıcı profili nasıl alınır?
- 4. Belirli bir dize tarafından sınıf referansı nasıl alınır
- 5. Bir kullanıcı .NET
- 6. Kullanıcı HTML'sini temizleyin. Net
- 7. Linux'ta bir .Net dosyasının AssemblyVersion'ı nasıl alınır
- 8. knpmenubundle: Oluşturucuda kullanıcı verileri nasıl alınır?
- 9. Facebook'taki Facebook kullanıcı telefon numarası nasıl alınır
- 10. Geçerli kullanıcı bölgesi boto'dan nasıl alınır?
- 11. Kullanıcı sistem kültürünü değiştirdiğinde olay nasıl alınır
- 12. İstemci/kullanıcı ip adresi nasıl alınır?
- 13. .NET: Active Directory'de nasıl kullanıcı arayabilirim?
- 14. .NET WindowsAuthentication'ı nasıl kurabilirim - gerçek kullanıcı
- 15. Hangi durumda Application_EndRequest denir ama Application_BeginRequest çağrılmaz?
- 16. .NET yanlış kullanıcı adı döndürüyor
- 17. Sınıf kitaplığında bir web referansı tüketme (C# /. NET)
- 18. Güncelleştirme DLL referansı
- 19. Prosedür döngüsel referansı nasıl düzeltilir?
- 20. Xcode'dan API referansı nasıl erişilir?
- 21. Yeniden referans referansı nasıl çalışır?
- 22. Kullanıcı .NET derlemesini (EXE) tıkladığında ne olur?
- 23. Kullanıcı denetimi içindeki genel yöntemler C# .net
- 24. C# Komut Dosyası Referansı Nasıl Eklenir
- 25. Ruby's Net :: SSH kütüphanesi ile çıkış durumu nasıl alınır?
- 26. Ruby HTTP :: Net ile 404 hatası nasıl ele alınır?
- 27. CheckBox'lar, asp .net kullanılarak denetlenen bir grid görünümünde nasıl alınır
- 28. .NET Yansıma - Dışarıdan "gerçek" tür nasıl alınır ParameterInfo
- 29. Google Analytics'ten tam kullanıcı aracı dizesi nasıl alınır
- 30. ASP.NET'te URL'den kullanıcı adı ve parola nasıl alınır?
Lütfen diğer yanıtı Julien ... http://stackoverflow.com/questions/3072768 adresinden kontrol edin./net-application-beginrequest-how-to-get-user-reference/3072801 # 3072801 – Ropstah
ropstah: Şimdi neler olduğunu anlıyorum. Uygulama, kimlik doğrulama isteği işlenmeden önce birden fazla istekte bulunma (görüntüler, komut dosyaları, stil sayfaları vb. Için). Bu diğer dosya istekleri kimlik doğrulamasına gerek duymayabilir ve bu nedenle istisna durumunuz atılır. Güncelleştirmeyi yanıtımı deneyin ve açıklığa kavuşturun. Ayrıca, Kullanıcı nesnesi gerektiren kodunuzla ne elde etmeye çalışıyorsunuz? –
Bu durum böyle değildi, ancak ** “Global.asax” yaşam döngüsü ile ilgili ** idi. "_Application_AuthenticateRequest_" ifadesinden sonra "Application_AuthorizeRequest()" işleminde sadece ** kullanılabilir olan User.IsInRole() işlevine ihtiyacım vardı. – Ropstah