2013-02-28 51 views
0

我的網站有Windows身份驗證,並且只允許我在web.config文件中提到的絕對用戶。剩下的用戶應該無法訪問該網站,因此我有denied.html頁面我希望其他用戶在嘗試訪問時獲取。以下是我的代碼。避免登錄Windows認證網站的提示

在web.config中

<authentication mode="Windows"> 
</authentication>  
<authorization> 
    <allow users="domain\user1, domain\user2" /> 
    <deny users="*"/> 
</authorization> 

在Global.asax中

protected void Application_EndRequest(Object sender, EventArgs e) 
{ 
    HttpContext context = HttpContext.Current; 
    if (context.Response.Status.Substring(0, 3).Equals("401")) 
    { 
     context.Response.ClearContent(); 
     Server.Execute("~/Denied.html"); 
    } 
} 

的Application_EndRequest方法在Denied.html

<img src="Images/Access_Denied.jpg" /> 

現在我有一個,我已經嘗試過2個問題和谷歌搜索,但無法找到解決方案。

1)沒有訪問權限的用戶,他們得到一個對話框,要求他們輸入他們的局域網憑證,只有3次嘗試後,纔會被重定向到denied.html。有沒有辦法避免登錄提示並直接獲取denied.html?

2)我試圖加載在denied.html中的圖像顯示在頁面的設計中,但沒有在運行時出現,我只是想不出爲什麼?

在此先感謝!

回答

0

我無法回答#1,但發生#2是因爲您拒絕訪問您配置文件的資源。你可以在你的web.config中覆蓋這個...

... 
... 
</system.web> 
    <location path="Images"> 
    <system.web> 
     <authorization> 
     <allow users="*"/> 
     </authorization> 
    </system.web> 
    </location> 
+0

感謝您的回覆!我已經嘗試過,但沒有成功。實際上,當我添加位置路徑時,出現錯誤「在應用程序級別之外使用註冊爲allowDefinition ='MachineToApplication'的節是錯誤的。此錯誤可能是由於虛擬目錄沒有被配置爲IIS中的應用程序,然後通過Google來清除它,但沒有成功。如果我刪除身份驗證標記但會允許所有用戶訪問該網站,則錯誤消失 – user841311 2013-03-01 16:28:57