2013-08-19 14 views
5

Kimlik doğrulaması için özel bir HttpModule kullanıyorum. Modülün AuthenticateRequest olay işleyicisinde, özel bir SSO biletinin mevcut olup olmadığını kontrol ederim ve bu durumda bazı kimlik doğrulama mantığı gerçekleştirin.HttpModule'den MVC Uygulamasına Geçme Hatası

SSO bileti varsa, ancak yanlışsa, kullanıcıya kolay bir hata mesajı göstermek istiyorum. HTTP Durum 401'i (Yetkilendirilmemiş, kimlik doğrulaması başarısız olduğunda kullanılır) ayarlamak ve http modülünden anlamlı bir hata iletisini iletmeyi tercih ederim.

Daha sonra MVC uygulaması bu bilgileri bir şekilde almak ve modülden anlamlı bir hata iletisi içeren özel bir 401 hata sayfası oluşturmak için kullanmak isterim.

Hatayı http modülünde yükseltmenin en iyi yolu nedir ve MVC uygulamasını kullanarak hatayı görüntülemenin en iyi yolu nedir (MVC uygulamasının düzeninde hata mesajını almak için)?

+0

Bu iyi bir sorudur ve aynı zamanda kullanım için en iyi yaklaşımla ilgileniyorum. MVC'nin bir parçası olan bir hata görüntüsünü döndürmek için MVC Framework/Request Pipeline dışındaki hatalar. – asymptoticFault

cevap

1

Özel bir controllerfactory oluşturmak ve Gözlerinde farklı olabilir: Eğer bağlam nesnesi aracılığıyla HttpContext ve RouteData erişimi olacak

protected override IController GetControllerInstance(RequestContext context, Type controllerType) 

. Kullanıcı kimlik doğrulaması yapılmadıysa, istenen denetimler/parametrelerle istenen denetim/eylemi hedeflemek için rota verilerinizi değiştirebilirsiniz (örneğin, bir http durum mesajı)