BenASP.NET MVC'deki belirli sayfalara erişimi nasıl kısıtlarım?
a) Identity.IsAuthenticated = false
ya da doğrulanır ancak
eğer bir kullanıcının DÜZENLEME sayfasında (örn. /user/pure.krome/edit) erişimi kilitleme isteyen b) Idenitity.Name! = Düzenlemeye çalıştıkları kullanıcı sayfasının kullanıcı adı
c) Identity.UserType()! = UserType.Administrator // RoleProviders kullanmadan bir Role gibidir.
Bir denetleyici veya denetleyicinin eylem yöntemini bir şeyle (ler) dekore edebileceğimi varsayalım, ama ne olduğundan emin değilim?
İlginç ... ama ... kendi mantığımı değiştirmem gerektiğini biliyorum. Ama senin kodun sadece cevap bölümü (a). Ayrıca (c) 'yi de kontrol edebilirim. Ancak, kodun neyi kontrol edeceğini bilemez diye bir fikrim yok (b). Identity.Name var ... ama bu özellik - bu zaman noktasında - görüntüleme verilerinin ne olduğunu nasıl biliyor? ya da eylem metodundaki herhangi bir veri (henüz çalıştırılmamış olduğunu farz ediyorum), çünkü öznitelikleri ilk olarak ele alınıyor. –
AuthorizationContext parametresi, Denetçiye, HttpContext, ResultContext, RouteData ve Sonuç'a yapılan başvuruları içerir. RouteData'dan ihtiyacınız olan her şeyi alabilme.Genelleştirmek için, kullanıcının adı için kullanılacak rota veri anahtarını belirlemenizi sağlayan özniteliğinize bir özellik ekleyin.Kullanıcı türünü bağımsız olarak kontrol etmek için DB işlerini yapmanız gerekir. İki yapıcıya sahip olmak isteyebilirsiniz: veritabanı bağlamı/katman arabiriminizi ve parametrelerinizi alan ve varsayılan veritabanı bağlamını/katmanı oluşturan bir diğeri. Birim testinde eskiyi kullan. – tvanfosson