3

我有我的應用程序中的HTTP模塊掛接到FormsAuthenticationModule的身份驗證事件用下面的代碼:如何在Medium Trust環境中綁定當前的FormsAuthenticationModule?

public void Init(HttpApplication context) 
{ 
    FormsAuthenticationModule faModule = 
     (FormsAuthenticationModule)context.Modules["FormsAuthentication"]; 
    faModule.Authenticate += 
     new FormsAuthenticationEventHandler(faModule_Authenticate); 
} 

不幸的是,因爲應用程序需要在中等信任運行調用context.Modules失敗環境。我還有另一種方法可以參與這個活動嗎?

回答

3

這是一個艱難的 - 你甚至不能從你的全局應用程序文件中訪問Modules集合。

你可以嘗試從全球的AuthenticateRequest處理程序調用自定義代碼:

protected void Application_AuthenticateRequest(object sender, EventArgs e) 
{ 
    // Call your module's code here.. 
} 

不能從集合抓住你的自定義模塊,要麼,所以你需要一個靜態引用到你的模塊圖書館。

除了在機器級別web.config中授予您的網站AspNetHostingPermission(as detailed for other permissions here)之外,我沒有想法!

+0

如果您通過Reflector在System.Web中的HttpApplication類中檢查了Modules屬性,則可以看到高信任級別的CAS需求。不幸的是,我知道我的主持人回答問:「我們有這些WONDERFUL VPS /專用服務器!」 :( – 2009-01-11 02:33:07

相關問題