2008-09-25 11 views
6

Yalnızca bu profilin sahibi tarafından erişilebilen bir profil sayfanız olduğunu varsayalım. Bu profil sayfası bulunmaktadır:ASP.NET MVC kullanarak birim web sayfası yetkilendirmesini nasıl test ediyorsunuz?

/Profil/{kullanıcı kimliği} Şimdi

, ben diğer kullanıcılar tarafından bu sayfaya erişimi engellemek için hayal Kullanıcı, sen akımı kontrol etmek için UserController sınıfının Profili işlevini yapısı olabilir oturumun kimlik: id url biri maçları

HttpContext.Current.User.Identity.Name

, o zaman devam edin. Aksi halde bir çeşit hata sayfasına yönlendirilirsiniz.

Benim sorum birim nasıl böyle bir şey sınamak? Kontrol etmek için denetleyicideki HttpContext yerine bir çeşit bağımlılık enjeksiyonu kullanmanız gerektiğini tahmin ediyorum, ama bunun en iyi yolunun ne olduğu belirsiz. Herhangi bir tavsiye yararlı olacaktır.

cevap

1

Kazi gösterilen "UserNameFilter" ile devam: Ben de makalede belirtilen şekilde yetkilendirme özelliklerini kullanmalıdır, programlı User.Identity.Name değerini kontrol yerine eklersiniz Manzur'un blog post. Bir çekicilik ve kolay birim testi gibi çalışır.

0

Sahte HttpContext ile alay geldiği yer burasıdır.