【发布时间】:2016-01-23 12:43:50
【问题描述】:
我需要创建一个 ASP .NET 网页(托管在带有 IIS 7.5 的 Windows Server 2008R2 上),域用户和匿名用户应该可以看到该网页,而不会提示他们两个的凭据请求。域用户应有权查看整个页面,而匿名用户可以查看页面的公共部分。
- 当我启用 Windows 身份验证时: 域用户可以看到整个页面,但会提示匿名用户输入凭据。
- 当我启用匿名身份验证或两者(匿名和窗口)时:匿名用户可以看到页面的公共部分,但域用户看不到整个页面(他们就像匿名用户一样)。
我使用下面的字符串来区分匿名用户和域用户:
WindowsAccountName = HttpContext.Current.Request.LogonUserIdentity.Name;
如果 WindowsAccountName 为空,则用户为匿名用户,否则为域用户。不幸的是,启用匿名身份验证时,WindowsAccountName 始终为空(即使对于域用户也是如此),但是当禁用匿名身份验证时,会提示非域用户输入凭据。
你有解决这些问题的办法吗?请记住,域用户分布在不同的网络中,因此 IP 地址不是区分域用户和非域用户的好选择。
对我来说它看起来像一个 22 条规则
谢谢。
【问题讨论】:
标签: c# asp.net authentication iis iis-7.5