2011-07-05 50 views
4

我正在創建一個http模塊,我想檢查一個請求是否來自經過身份驗證的用戶,如果不是,則重定向到登錄頁面。http模塊:請求不可用

我註冊在web.config文件中的模塊,我有以下代碼的投擲一個例外:

public class IsAuthModule : IHttpModule 
{ 
    public void Dispose() { } 

    public void Init(HttpApplication TheApp) 
    { 
     var TheRequest = TheApp.Request; 

    } 
} 

它扔,說一個例外「的要求是不是在這方面提供」

我在做什麼錯?

+0

http://stackoverflow.com/questions/2518057/request-is-not-available-in-this-context – rahularyansharma

回答

5

在Init階段,您沒有正在進行的請求。您需要申請開通該事件的請求開始:

public void Init(HttpApplication TheApp) 
{ 
    TheApp.BeginRequest += Application_BeginRequest; 

    // End Request handler 
    //application.EndRequest += Application_EndRequest; 
} 

private void Application_BeginRequest(Object source, EventArgs e) 
{ 
    // do something 
} 
+1

感謝這個漂亮的回答言簡意賅,肯定會跳過教程長度的解釋! – frenchie