我想锁定一些我的WCF方法,同时允许匿名使用其他方法。
目前我正在使用System.Threading.Thread.CurrentPrincipal.Identity.Name来确定请求者的登录,否则我假设是匿名的。
当我使用域帐户或本地帐户时,这适用于以下配置。但是,当我使用。\ LocalSystem(nt authority \ system)帐户(匿名)点击它时,我得到了一个" 401 - 未经授权:由于凭证无效而拒绝访问。"
预先感谢您提供的任何帮助,以便我可以在那里提取身份但是假设匿名(并让它们通过),而不是?
我当前的配置 - IIS身份验证= Windows和匿名=启用 - IIS授权规则=每个人和匿名=允许 - 安全模式=运输 - 传输clientCredentialType = Windows
<basicHttpBinding>
<binding.../>
<security mode="Transport">
<transport clientCredentialType="Windows" />
</security>
. . .
<!-- Authorization Rules Allow Anonymous -->
<security>
<authorization>
<add accessType="Allow" users="?" />
</authorization>
</security>
答案 0 :(得分:0)
我实际上已经找到了问题,也许有人有更好的方法来做到这一点。
当客户端是域(受信任)的一部分时,它可以使用域帐户,本地帐户,甚至本地系统(nt authority \ system)...但是如果客户端不是域的一部分(工作组)那么它适用于域帐户,本地帐户,但不适用于本地系统......