2010-07-26 175 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