gpt4 book ai didi

asp.net - ASP.NET 身份验证何时发生?

转载 作者:行者123 更新时间:2023-12-02 00:36:43 26 4
gpt4 key购买 nike

我有一个应用程序,可以显示当前用户所属的每个 Active Directory 组。当我有这样的配置设置时:

    <authentication mode="Windows"/>
<authorization>
<deny users="?"/>
<allow users="*"/>
</authorization>

它工作正常。当它是这样的:

    <authentication mode="Windows"/>
<authorization>
<!--<deny users="?"/>-->
<allow users="*"/>
</authorization>

没有找到组。为什么这会有所作为?如果我们特别拒绝未经身份验证的用户访问,asp.net 是否仅进行身份验证?

如果有帮助,这就是我获取群组的方式:

    protected string GetUserGroups()
{
StringBuilder userGroups = new StringBuilder();
ArrayList groupMembers = new ArrayList();
DirectoryEntry root = new DirectoryEntry("LDAP://myldap/DC=nc,DC=local");
DirectorySearcher ds = new DirectorySearcher(root);
ds.Filter = String.Format("(&(samaccountname={0})(objectClass=person))", User.Identity.Name.Substring(User.Identity.Name.LastIndexOf(@"\") + 1));
ds.PropertiesToLoad.Add("memberof");
try
{
foreach (SearchResult sr in ds.FindAll())
{
foreach (string str in sr.Properties["memberof"])
{
string str2 = str.Substring(str.IndexOf("=") + 1, str.IndexOf(",") - str.IndexOf("=") - 1);
groupMembers.Add(str2);
}
}
}
catch
{
//ignore if any properties found in AD
}
return String.Join("|", (string[])groupMembers.ToArray(typeof(string)));
}

最佳答案

我可能是错的,但我相信它是这样工作的:

浏览器第一次访问网站时,它是匿名访问的。

如果服务器说不允许匿名,则浏览器会向用户发送 Windows 凭据。

如果这些凭据未通过审核,浏览器会弹出登录框或(取决于应用程序)将它们发送到登录页面。

因此,因为您的站点允许匿名,所以所有用户都以这种方式访问​​。

关于asp.net - ASP.NET 身份验证何时发生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4315971/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com