【发布时间】:2018-10-20 14:20:43
【问题描述】:
我有一个为特定域组 (MYDOMAIN\MY_SITE_USERS) 设置了 Windows 身份验证的 ASP.NET 网站。我想添加一个控制器,其中包含一些可以从特殊 Windows 帐户执行的操作,而无需访问网站的其余部分。
所以:
~ ==> only MYDOMAIN\MY_SITE_USERS
~/DoSomething ==> only MYDOMAIN\MY_SITE_USERS
~/SpecialAction/Do ==> only MYDOMAIN\SPECIAL_ACCOUNT
我见过其他答案(在 Web.Config 中使用 location),例如:
<location path="~/SpecialAction/Do">
<system.webServer>
<security>
<authorization>
<add accessType="Deny" users="*"/>
<add accessType="Allow" users="MYDOMAIN\SPECIAL_ACCOUNT"/>
</authorization>
</security>
</system.webServer>
</location>
但我的问题是,有了以上内容,SPECIAL_ACCOUNT 可以访问所有其他页面,因为我需要添加到一般页面:
<authentication mode="Windows" />
<identity impersonate="true"/>
<authorization>
<allow users="MYDOMAIN\SPECIAL_ACCOUNT" />
<allow users="MYDOMAIN\MY_SITE_USERS"/>
<deny users="?" />
<deny users="*" />
</authorization>
否则 MYDOMAIN\SPECIAL_ACCOUNT 根本无法登录。
【问题讨论】:
-
能否给相关的windows用户添加一个特殊的角色或组?
-
@ste-fu 是的,如果有帮助我可以
-
@ste-fu 我认为这是一个理解场景的问题。如果改为“您是否尝试过使用角色/组”,那么答案是肯定的,我尝试过,没有任何变化
-
抱歉耽搁了我才看到通知。我在想您可以将角色/组添加到“MySiteUsers”而不是“SpecialAccount”,然后您可以将适当的“Authorize”属性添加到您的其他控制器
标签: asp.net-mvc iis web-config windows-authentication