2010-07-26 171 views
1

我試圖通過集成的Windows來控制對我的網站的訪問。使用web.config控制訪問

<?xml version="1.0"?> 
<configuration> 
<system.web> 
    <authentication mode="Windows"/> 
    <authorization> 
    <deny users="?"/> 
    <allow roles="DOMAIN\The_group_that_can_access_it"/> 
    </authorization> 
    ... 
</system.web> 
</configuration> 

除此之外,此代碼不起作用。如果我是該組的成員,我可以訪問它。哪裏不對?

我查看了一些代碼,想到也許我需要切換?*,但那麼這似乎只是否認一切。

感謝,

+0

您拒絕匿名用戶(?),雖然您需要拒絕每個用戶(*) – Mostafa 2010-07-26 07:11:38

回答

3

你沒有一個明確的否認聲明,應在以下條目添加到該聲明的末尾:

<deny users="*" /> 

而且可以消除被拒絕未經授權的用戶的<deny users="?"/> 。無論如何,最終的<deny users="*" />將否認它們。那麼只有你的小組有權訪問。最終的結果應該是:

<authorization> 
    <allow roles="DOMAIN\The_group_that_can_access_it"/> 
    <deny users="*"/> 
</authorization> 

根據經驗法則,經常是收出你的訪問控制列表有明確的拒絕所有,或拒絕任何任何。

+0

好,我確實嘗試了(如上所述),而不是使用'*',但是這仍然無效...實際聲明的順序很重要? (首先允許角色,否認第二?) – baron 2010-07-26 07:10:48

+1

是的,首先允許角色,然後否認其他人。 – 2010-07-26 07:15:18

+0

隨機,你完全正確。我不會認爲它很重要。謝謝 – baron 2010-07-26 07:29:05