ActionFilter tanımlayıp onun üzerinden erişim kontrolü yapsan? Anladığım kadarıyla her controller içinden cookiye erişimek istiyorsun. Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.

sorunu buldum sanirim. benim claims'leri ekledigim context, oauth'dan gelen context o da haliyle authorization ile iliskili. Simdi startup'da anonymous'un httpcontext'ine nasil erisebilirim ki oauth context'ine yazdigim context. RunClaimActions ; aynisini anonymous'a da yazayim. Bylece sorun czülmüs olur. IHttpContextAccessor'u singleton olarak ekledim ama Configure metodunda HttpContext null geliyor public void ConfigureService public void Configure bu context'e nasil ulabilirim startup. cs den? Bunu yapabilirsem sorun czülmüs olacak gibi duruyor @Hannibal_King 'in cevabina gre bu context request ile olusuyor ama en azindan bu context icin nasil cookie ekleyebilirim yani belki startup. cs den erisemem ama otomatik olarak bu contextlere'e nasil cookie olusturabilirim? unbalanced tarafından 07/Şub/22 13:35 tarihinde düzenlenmiştir Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

Pipeline hakkında detaylıca yazacaktım hocam. Çok yoğundum yazamadım kusura bakma. Yarın müsait olursam 3-5 bir şey yazayım. Çzmene sevindim. Yarın detaylı bakarım yaptığın çzüme.

Selam arkadaslar Gnüllü yaptigimiz projede takildigim bir yer var. Aslinda bir sekilde hallettim ama bu yolun en uygun oldugunu düsünmüyorum, belki daha iyi bir yolu vardir. 3. parti bir provider ile login yapiyorum. Sign-in with Google gibi bir secenek gibi. Login oluyorum, token, claims her sey tamam authorization istemeyen metodlardaki httpcontext altindaki identity bos oluyor, ancak metod'un üstünde authorize varsa o zaman context'ten erisebiliyorum. Benim amacim login olduktan sonra, metod ne olursa olsun context'ten erisebilmek. Üstte syledigim gibi olayi czdüm ama icime sinmedi bu sekil yapmak public async Task<IActionResult> IndexAsync bu sekil yaptigimda hem o metod icinde identity'e erisebiliyorum hem de cshtml sayfalarinda user nesnesi bos gelmiyor.. Anladigim kadariyla bu context sürekli degisiyor o yüzden üstteki kodu her metod'da cagirmam gerekiyor ve o da cookie'den okuyor. Ama ben bu sekilde cagirmadan nasil erisebilirim, var midir bir yolur? isteyen arkadas uzaktan baglanip bakabilir. unbalanced tarafından 06/Şub/22 03:32 tarihinde düzenlenmiştir Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

Authorize attribute u yazılmış controllerde allowannonymous yazılmış action ı içinde durum aynı mı Aynen hocam. Account controller classı o şekilde ve oradaki bir action tetiklenince user identity boş. Home controller'ında hiç bir attribute yok ama onda da aynı. Dolu geldiği yer sadece Authorize attribute olan metodlar. Acaba genel yapısı mı byle yoksa benim kodumda mı sıkıntı var bilmiyorum unbalanced tarafından 06/Şub/22 14:18 tarihinde düzenlenmiştir Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

MaviGozluDev bunu yazdı unbalanced bunu yazdı DrKill bunu yazdı Authorize attribute u yazılmış controllerde allowannonymous yazılmış action ı içinde durum aynı mı Aynen hocam. Account controller classı o şekilde ve oradaki bir action tetiklenince user identity boş. Home controller'ında hiç bir attribute yok ama onda da aynı. Dolu geldiği yer sadece Authorize attribute olan metodlar. Acaba genel yapısı mı byle yoksa benim kodumda mı sıkıntı var bilmiyorum Controller'ın tepesinde Authorize varken ActionMethod a eklediğinde olması lazımdı. Account controller'ında yetkisiz erişim olmasını istediğin metodun başına alt alta nce sonra ekleyip denesene bi hocam :) iki dedigini de denedim hocam olmadi.. Farkli bir sorun var. Ve bence sorun bir sekilde cookie genel olarak kaydolmuyor, sadece AuthorizeType neyse o zaman cookie'den okuyor. Byle bir sorunu internette de pek bulamadım. Ya basit bir hata var, ya implement edip override etmen gereken bir fonsiyon ya da startup ın poh yemesi Bulursa burayı doldur DrKill tarafından 07/Şub/22 00:04 tarihinde düzenlenmiştir Bu imzayı her grdüğünüzde 4gb kotanızın 0,00000358559191226959228515625 azalmaktadır. Bilerek ve istenerek bu imza yapılmıştır. Amaç kotanızı smürmektir

şu tarz bir auth koyduğunu düşünüyorum. Startup ı bir incele: http://www.voidgeeks.com/tutorial/How-to-Add-Google-Authentication-in-ASPNET-Core-Application/17 Bir cevap buldum istersen bir dene: What fixed the false response for me was changing from; var result = await HttpContext. AuthenticateAsync ; to var result = await HttpContext. AuthenticateAsync ; Eğer çokta olmazsa ya bir acrtionfilter üzerinden gtür yetkilendirmeyi, ya da bir middleware yaz bu iş için. linkteki startup'u kontrol ettim, bir kac eksik sey vardi onlari ekledim ama sonuc ayni hocam. Paylastigin kodu zaten ben ilk mesajimda yazdim, o sekilde yapinca alabiliyorum ama ben onu direk her context'te grmek istiyorum problem o ve hala gelmiyor. Grünüse gre zaten actionfilter falan kullanmak gerek. Bir yerde bir hata var ama czemedim Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

DrKill bunu yazdı Authorize attribute u yazılmış controllerde allowannonymous yazılmış action ı içinde durum aynı mı Aynen hocam. Account controller classı o şekilde ve oradaki bir action tetiklenince user identity boş. Home controller'ında hiç bir attribute yok ama onda da aynı. Dolu geldiği yer sadece Authorize attribute olan metodlar. Acaba genel yapısı mı byle yoksa benim kodumda mı sıkıntı var bilmiyorum Controller'ın tepesinde Authorize varken ActionMethod a eklediğinde olması lazımdı. Account controller'ında yetkisiz erişim olmasını istediğin metodun başına alt alta nce sonra ekleyip denesene bi hocam :) MaviGozluDev tarafından 06/Şub/22 20:53 tarihinde düzenlenmiştir.

Web uygulaması geliştirmemizi sağlayan bir frameworkten beklediğimiz en nemli şey; HTTP isteklerini nesneler ile temsil etmesidir. Ve biz bu nesnelere uygulama kodlarımız aracılığı ile erişebilmeliyiz. Bir HTTP isteği düz bir metin olabilir veya binary formda da olabilir. HTTP 1.1, 2.0 farketmez. Framework bu isteği alır parçalar ve C# tarafında belirli nesnelere yerleştirir. Ve hatta client a dnülecek olan HTTP isteğini de kolayca manipüle edebilelim diye onun içinde ayrı bir nesne oluşturur. Ve bizde yazılımcı olarak bu nesneler ile muhatap oluruz. Bütün bu işleme HTTP isteğini handle etmek diyebiliriz. Yani framework un ele alması. İşte ASP. NET Core da bu işi HttpContext nesneleri ile çok güzel bir şekilde yapıyor. Biz HttpContext nesneleri sayesinde querystringlere, cookielere, ip adresine, routing bilgilerine kısaca HTTP mesajında ne varsa ona erişebiliyoruz. HttpContext nesnesinin request e zgü olduğunu unutmayalım. Her gelen istek için ayrı bir nesne gibi düşünebiliriz. Uygulamanın farklı yerlerinden HttpContext nesnesine erişebilmek mümkün. Bazen bir viewdan, bazen controller içinden, bazen filters içinden, bazen bir middleware içinden HttpContext e erişmek isteyebiliriz. HttpContext nesnesine erişmemizi sağlayacak olan propertylerin veya değişkenlerin isimleri farklı olabilir. rneğin View üzerinde HttpContext e erişmek istersek @ViewContext. HttpContext yazmamız gerekebilir. Ancak yazılımcının temel amacı hep aynı: HttpContext e eriş ve gerekliyse manipüle et veya bir değeri oku. Senin rneğe gelecek olursak; ) nce doğrudan problemi çzelim. Herkesin erişebildiği bir action methodun ve bu action methodun çalışması sonucunda ortaya çıkan bir View var. Sen bu view üzerindeki bir alanı yani HTML kodunu duruma gre gizlemek veya gstermek istiyorsun. 1-) Projende Util isminde bir klasr aç. İçine MyBasePage isimli bir sınıf ekle. Bu sınıfı RazorPage sınıfından türet. (GRSEL 1) Bu sınıflar generic olacak. https://bulutdoktor.notion. site/tbt-photo-9f98e1a436a64e51a509556ee4d78e7e tüm grsellere bu link üzerinden erişebilirsin. 2-) Bu sınıfın içine bir metot yaz ismine IsAuthenticated diyebilirsin. GRSEL 2 de olduğu gibi içini kendince yaz. Sen burada auth-cookie olup olmadığına bakacaksın. Artık cookienin adı ne ise cookie varsa metodun true yoksa false dnecek. Dikkat edersen RazorPage isimli sınıftan dahi HttpContext nesnesine erişebiliyoruz. 3-) GRSEL 3 te koyduğum gibi Views klasrünün altına doğrudan _ViewImports. cshtml isimli dosyayı oluştur. 4-) GRSEL 4 te olduğu gibi _ViewImports. cshtml içinde senin viewlarının 1. adımda oluşturduğun MyBasePage sınıfını dikkate alacaklarını syle. Bylece MyBasePage sınıfındaki metotları tüm viewlarından kullanabileceksin. 5-) İstediğin view a git @if (IsAuthenticated yaz. ideal çzüm bu. ) Controller içinden o anki Request in sahibi olan User ın bilgilerine erişmek istersek ne yapacağız? @MaviGozluDevün dediği gibi yapacağız. MyBaseController isimli bir controller oluşturup diğer tüm Controllerları MyBaseController dan türeteceğiz. MyBaseController içinde CurrentUser isimli bir property olabilir. GRSEL 5 te kendi rneğimi attım. Burada rahat bir şekilde CurrentUser = context. HttpContext. Items as OnlineUserData; yazmışım ben. Çünkü HttpContext. Items ın içine daha nceden Anahtarı "CurrentUser" olan ve değeride OnlineUserData türünden bir nesne olan itemi koymuşum. HttpContext. Items son derece nemlidir. Tüm pipeline boyunca veri taşımamızı sağlar. Ben Controller'ın OnActionExecuting metodundan daha nce hazırladığım bu item'e erişiyorsam bunu nerede SET etmiş olabilirim. Mantıken Controller çalışmadan nce set etmem lazım. Evet ylede yaptım. Kendim bir filtre yazdım. GRSEL 6 ya bakabilirsin. ) Peki filtreler her zaman Controllerdan nce mi çalışır? HAYIR. Hangi filtre olduğuna bağlı. Ben kendi rneğimde IAuthorizationFilter kullanmışım. Çünkü biliyorum ki bu filtre Controller dan nce çalışacak. ) Filtre ne demek? ASP. NET Core ve ASP. NET te bulunan zelleştirilmiş Attributelardır. Bizim gelen requeste belirli noktalarda müdahale etmemizi sağlar. ) Filtre kavramı middleware kavramı gibi mi? Hayır. Detaya girmiyim uzun sürer. Authorize attribute kullanmayınca HttpContext. User boş geliyorsa demekki ilgili attribute o property yi dolduruyor. Normal bir durum. Pipeline, Filters vb. konular üzerine uzun uzun yazardım ama konu uzamasın çok. Umarım faydalı olur. hocam cok cok tesekkür ederim aciklayici cevap icin. Bir cok sorumun cevabini buldum burda yani daha iyi anladim mantigini. Bu context'i ben bir kereye mahsus olarak düsündüm ama her request'te degismesi ilginc geldi ama icersinde request bilgilerini barindiriyorsa o zaman normaldir byle olmasi. Ben projede bir hata yapiyorum o yüzden olmadigini düsünüyorum. Yani sanki bir metod var ve ben o metodu cagirinca context user'in identity'si dolacakmis gibi ama yle bir metod grmedim. Grünen o ki senin syledigin gibi base view ve base controller olusturup yapacagim. Biraz daha ugrasayim bugün, olmazsa yapacak bir sey yok. Vaktin olursa startup. cs'ye bakabilirsen sevinirim. hatta zelden yollayayim. Bir eksiklik mi var bilemedim Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

Pipeline hakkında detaylıca yazacaktım hocam. Çok yoğundum yazamadım kusura bakma. Yarın müsait olursam 3-5 bir şey yazayım. Çzmene sevindim. Yarın detaylı bakarım yaptığın çzüme. Çok sağol hocam. Yazdığın şeyler çok faydalı oldu ğrenmekten için. Bir çok insana eminim katkı sağlıyor Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

tam derdini anlamadım sanırım hocam da bi basecontroller'da gene cookiden okuma vs işlerini yapıp UserInfo gibi bişeye atsan sonra bu basecontroller'dan türeyen controllerlarda her yerde UserInfo olarak kullansan işini grmez mi? MaviGozluDev tarafından 06/Şub/22 11:57 tarihinde düzenlenmiştir.

@DrKill hocam istersen baglanip bakabilirsin yani hatayi bulabilirim diyorsan makine seni bekliyor :) @ontedi en basit haliyle czmek istiyorum aslinda hocam. Daha nce actionfilter kullanmadim ama sanirim middleware gibi calisiyor. Aslinda cookie vs ile isim yok ama bu login bilgisi cookie'de tutuluyor. Benim anlamadigim notka su, neden bu kadar karisik. Yani authentication yaptiktan sonra login menü item'ini gizlemem lazim ama girdigim sayfaya gre , context'de user identity var veya yok.. Yani ben mi yanlis yapiyorum acaba yoksa bu byle mi calisiyor. Cookie olusuyorsa zaten bunu neden her yerde kullanamiyorum onu anlamis degilim. var result = await HttpContext. AuthenticateAsync ; HttpContext. User = result. Principal; su kod isimi grüyor ama her metoda bunu yazmak istemiyorum. ActionFitler de sart degilse onu da yapmak istemiyorum ben direk HttpContext. User. Identity üzerinden ulasmak istiyorum . Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

sonunda olayi czdüm :)) kac saat harcadim kücücük bir sey icin, bir sürü sey ekle cikar falan filan.. deneme yoluyla buldum problemi. Simdi benim anladigim kadariyla context'de identity'nin grünmesi icin SignIn yapilmasi gerekiyormus. O yüzden 3. parti yazilimindan cevap geldiginde oradaki contextten identity aliyorum ve httpcontext üzerinden sign-in yapiyorum var result = await HttpContext. AuthenticateAsync ; await HttpContext. SignInAsync ; Ancak buradaki SignIn bir türlü calismadi yani HttpContext. User'a baktigimda hep bostu anlamsiz yere. Onu czmeyle ugrastim ve sorunu buldum asagida AddAuthentication metodu var buradaki kismi youtube videosuna bakarak yapmistim. services. AddAuthentication DefaultAuthenticateScheme a JwtBearerDefaults. AuthenticationScheme atamis ve sorun da burdan kaynaklaniyormus. O kismi syle degistirince options. DefaultAuthenticateScheme = CookieAuthenticationDefaults. AuthenticationScheme; Basarili sekilde login olabildim ve HttpContext. User artik her metod da dolu geliyor :) Yani anonymous context'e sonunda yazdirdim istedigimi Cevap veren, ilgilenen tüm arkadaslara cok tesekkür ederim. Ekstra filter, base class vs yazmama gerek kalmadi sükür gerci onlari da yapmistim ama bu sekil istedigim gibi oldu :)) Artik rahatca uyurum unbalanced tarafından 08/Şub/22 04:35 tarihinde düzenlenmiştir Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

Cevap için teşekkürler. nerin güzelmiş düşüneyim bunu. Sorun kısaca şu. Logini başarılı olmuş olsam da HttpContext altındaki İdentity. IsAuthorized, başında Authorize olmayan metodlarda false geliyor. Aynı zamanda hiç bir claim vs yok. Ama metod authorize attribute ile işaretlenmişse, claimse erişebiliyorum. Neden byle oluyor? Yani neden farklı contextler oluşuyor. Sonuçta login oldum ve claims leri grdüm. Ama mesela Authorize gerekmeyen index metodunda context altında claims yok ve IsAuthenticated false. Aynı şekilde index. cshtml de User. Identity de boş olmuş oluyor. Mesela ben bazı menü itemlerini IsAuthenticated true ise gster-gizli yapacağım ama User. Identity. IsAuthenticated false dnüyor. Eğer gstermek istediğim cshtml sayfasının metodu Authorize ile işaretlenmişse, o zaman bir sorun yok. Sorun sadece başında Authorize olmayan metodlarda oluyor. rnek public IActionResult SecurePage public IActionResult NonSecurePage Telden yazdığım için yazım yanlışları olabilir ama umarım anlaşılmıştır Authorize attribute u yazılmış controllerde allowannonymous yazılmış action ı içinde durum aynı mı Bu imzayı her grdüğünüzde 4gb kotanızın 0,00000358559191226959228515625 azalmaktadır. Bilerek ve istenerek bu imza yapılmıştır. Amaç kotanızı smürmektir

@DrKill hocam istersen baglanip bakabilirsin yani hatayi bulabilirim diyorsan makine seni bekliyor :) @ontedi en basit haliyle czmek istiyorum aslinda hocam. Daha nce actionfilter kullanmadim ama sanirim middleware gibi calisiyor. Aslinda cookie vs ile isim yok ama bu login bilgisi cookie'de tutuluyor. Benim anlamadigim notka su, neden bu kadar karisik. Yani authentication yaptiktan sonra login menü item'ini gizlemem lazim ama girdigim sayfaya gre , context'de user identity var veya yok.. Yani ben mi yanlis yapiyorum acaba yoksa bu byle mi calisiyor. Cookie olusuyorsa zaten bunu neden her yerde kullanamiyorum onu anlamis degilim. var result = await HttpContext. AuthenticateAsync ; HttpContext. User = result. Principal; su kod isimi grüyor ama her metoda bunu yazmak istemiyorum. ActionFitler de sart degilse onu da yapmak istemiyorum ben direk HttpContext. User. Identity üzerinden ulasmak istiyorum . şu tarz bir auth koyduğunu düşünüyorum. Startup ı bir incele: http://www.voidgeeks.com/tutorial/How-to-Add-Google-Authentication-in-ASPNET-Core-Application/17 Bir cevap buldum istersen bir dene: What fixed the false response for me was changing from; var result = await HttpContext. AuthenticateAsync ; to var result = await HttpContext. AuthenticateAsync ; Eğer çokta olmazsa ya bir acrtionfilter üzerinden gtür yetkilendirmeyi, ya da bir middleware yaz bu iş için. DrKill tarafından 07/Şub/22 09:03 tarihinde düzenlenmiştir Bu imzayı her grdüğünüzde 4gb kotanızın 0,00000358559191226959228515625 azalmaktadır. Bilerek ve istenerek bu imza yapılmıştır. Amaç kotanızı smürmektir

Cevap için teşekkürler. nerin güzelmiş düşüneyim bunu. Sorun kısaca şu. Logini başarılı olmuş olsam da HttpContext altındaki İdentity. IsAuthorized, başında Authorize olmayan metodlarda false geliyor. Aynı zamanda hiç bir claim vs yok. Ama metod authorize attribute ile işaretlenmişse, claimse erişebiliyorum. Neden byle oluyor? Yani neden farklı contextler oluşuyor. Sonuçta login oldum ve claims leri grdüm. Ama mesela Authorize gerekmeyen index metodunda context altında claims yok ve IsAuthenticated false. Aynı şekilde index. cshtml de User. Identity de boş olmuş oluyor. Mesela ben bazı menü itemlerini IsAuthenticated true ise gster-gizli yapacağım ama User. Identity. IsAuthenticated false dnüyor. Eğer gstermek istediğim cshtml sayfasının metodu Authorize ile işaretlenmişse, o zaman bir sorun yok. Sorun sadece başında Authorize olmayan metodlarda oluyor. rnek public IActionResult SecurePage public IActionResult NonSecurePage Telden yazdığım için yazım yanlışları olabilir ama umarım anlaşılmıştır Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

unbalanced bunu yazdı DrKill bunu yazdı Authorize attribute u yazılmış controllerde allowannonymous yazılmış action ı içinde durum aynı mı Aynen hocam. Account controller classı o şekilde ve oradaki bir action tetiklenince user identity boş. Home controller'ında hiç bir attribute yok ama onda da aynı. Dolu geldiği yer sadece Authorize attribute olan metodlar. Acaba genel yapısı mı byle yoksa benim kodumda mı sıkıntı var bilmiyorum Controller'ın tepesinde Authorize varken ActionMethod a eklediğinde olması lazımdı. Account controller'ında yetkisiz erişim olmasını istediğin metodun başına alt alta nce sonra ekleyip denesene bi hocam :) iki dedigini de denedim hocam olmadi.. Farkli bir sorun var. Ve bence sorun bir sekilde cookie genel olarak kaydolmuyor, sadece AuthorizeType neyse o zaman cookie'den okuyor. Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

Web uygulaması geliştirmemizi sağlayan bir frameworkten beklediğimiz en nemli şey; HTTP isteklerini nesneler ile temsil etmesidir. Ve biz bu nesnelere uygulama kodlarımız aracılığı ile erişebilmeliyiz. Bir HTTP isteği düz bir metin olabilir veya binary formda da olabilir. HTTP 1.1, 2.0 farketmez. Framework bu isteği alır parçalar ve C# tarafında belirli nesnelere yerleştirir. Ve hatta client a dnülecek olan HTTP isteğini de kolayca manipüle edebilelim diye onun içinde ayrı bir nesne oluşturur. Ve bizde yazılımcı olarak bu nesneler ile muhatap oluruz. Bütün bu işleme HTTP isteğini handle etmek diyebiliriz. Yani framework un ele alması. İşte ASP. NET Core da bu işi HttpContext nesneleri ile çok güzel bir şekilde yapıyor. Biz HttpContext nesneleri sayesinde querystringlere, cookielere, ip adresine, routing bilgilerine kısaca HTTP mesajında ne varsa ona erişebiliyoruz. HttpContext nesnesinin request e zgü olduğunu unutmayalım. Her gelen istek için ayrı bir nesne gibi düşünebiliriz. Uygulamanın farklı yerlerinden HttpContext nesnesine erişebilmek mümkün. Bazen bir viewdan, bazen controller içinden, bazen filters içinden, bazen bir middleware içinden HttpContext e erişmek isteyebiliriz. HttpContext nesnesine erişmemizi sağlayacak olan propertylerin veya değişkenlerin isimleri farklı olabilir. rneğin View üzerinde HttpContext e erişmek istersek @ViewContext. HttpContext yazmamız gerekebilir. Ancak yazılımcının temel amacı hep aynı: HttpContext e eriş ve gerekliyse manipüle et veya bir değeri oku. Senin rneğe gelecek olursak; ) nce doğrudan problemi çzelim. Herkesin erişebildiği bir action methodun ve bu action methodun çalışması sonucunda ortaya çıkan bir View var. Sen bu view üzerindeki bir alanı yani HTML kodunu duruma gre gizlemek veya gstermek istiyorsun. 1-) Projende Util isminde bir klasr aç. İçine MyBasePage isimli bir sınıf ekle. Bu sınıfı RazorPage sınıfından türet. (GRSEL 1) Bu sınıflar generic olacak. https://bulutdoktor.notion. site/tbt-photo-9f98e1a436a64e51a509556ee4d78e7e tüm grsellere bu link üzerinden erişebilirsin. 2-) Bu sınıfın içine bir metot yaz ismine IsAuthenticated diyebilirsin. GRSEL 2 de olduğu gibi içini kendince yaz. Sen burada auth-cookie olup olmadığına bakacaksın. Artık cookienin adı ne ise cookie varsa metodun true yoksa false dnecek. Dikkat edersen RazorPage isimli sınıftan dahi HttpContext nesnesine erişebiliyoruz. 3-) GRSEL 3 te koyduğum gibi Views klasrünün altına doğrudan _ViewImports. cshtml isimli dosyayı oluştur. 4-) GRSEL 4 te olduğu gibi _ViewImports. cshtml içinde senin viewlarının 1. adımda oluşturduğun MyBasePage sınıfını dikkate alacaklarını syle. Bylece MyBasePage sınıfındaki metotları tüm viewlarından kullanabileceksin. 5-) İstediğin view a git @if (IsAuthenticated yaz. ideal çzüm bu. ) Controller içinden o anki Request in sahibi olan User ın bilgilerine erişmek istersek ne yapacağız? @MaviGozluDevün dediği gibi yapacağız. MyBaseController isimli bir controller oluşturup diğer tüm Controllerları MyBaseController dan türeteceğiz. MyBaseController içinde CurrentUser isimli bir property olabilir. GRSEL 5 te kendi rneğimi attım. Burada rahat bir şekilde CurrentUser = context. HttpContext. Items as OnlineUserData; yazmışım ben. Çünkü HttpContext. Items ın içine daha nceden Anahtarı "CurrentUser" olan ve değeride OnlineUserData türünden bir nesne olan itemi koymuşum. HttpContext. Items son derece nemlidir. Tüm pipeline boyunca veri taşımamızı sağlar. Ben Controller'ın OnActionExecuting metodundan daha nce hazırladığım bu item'e erişiyorsam bunu nerede SET etmiş olabilirim. Mantıken Controller çalışmadan nce set etmem lazım. Evet ylede yaptım. Kendim bir filtre yazdım. GRSEL 6 ya bakabilirsin. ) Peki filtreler her zaman Controllerdan nce mi çalışır? HAYIR. Hangi filtre olduğuna bağlı. Ben kendi rneğimde IAuthorizationFilter kullanmışım. Çünkü biliyorum ki bu filtre Controller dan nce çalışacak. ) Filtre ne demek? ASP. NET Core ve ASP. NET te bulunan zelleştirilmiş Attributelardır. Bizim gelen requeste belirli noktalarda müdahale etmemizi sağlar. ) Filtre kavramı middleware kavramı gibi mi? Hayır. Detaya girmiyim uzun sürer. Authorize attribute kullanmayınca HttpContext. User boş geliyorsa demekki ilgili attribute o property yi dolduruyor. Normal bir durum. Pipeline, Filters vb. konular üzerine uzun uzun yazardım ama konu uzamasın çok. Umarım faydalı olur.