具有针对活动目录的Windows身份验证的Asp.net网页

本文关键字:Windows 身份验证 net 网页 Asp 活动 | 更新日期: 2023-09-27 18:07:54

我整晚都在摆弄这个,真的很沮丧。我得到的网页显示,但由于某种原因,它不工作的意思是,它拍摄我回到我的错误页面,并指出"无法认证用户,请再试一次!"。我不能弄清楚这一点,因为这工作完美地找到我的本地机器上安装了视觉工作室。

如果有人能花点时间帮帮我,我已经和它战斗了一整天了。由于

Class.cs

public bool IsUserInSetup(string groupName, UserPrincipal user)
    {
        PrincipalContext context = new PrincipalContext(ContextType.Domain, "DomainName");
       GroupPrincipal group = GroupPrincipal.FindByIdentity(context, "GroupName");
        if (user.IsMemberOf(group))
        {
            return true;
        }
        return false;
    }

Authentication.aspx.cs

 if (!IsPostBack)
            {
                if (Request.IsAuthenticated)
                {
                    if (gv.IsUserInSetup("GroupName", user))
                    {
                        Session["userValue"] = UserPrincipal.Current;
                        Response.Redirect("Default.aspx");
                    }
 else
                {
                    lblInfo.Text = "Could Not Authenticate User Please Try Again!";
                    lblInfo.Text += "<br><b>Name: </b>" + User.Identity.Name;
                    lblInfo.Text += "<br><b>Authenticated With: </b>";
                    lblInfo.Text += User.Identity.AuthenticationType;
                }

具有针对活动目录的Windows身份验证的Asp.net网页

应用程序在IIS上部署失败的一个可能原因是,您配置它运行的帐户没有足够的权限来访问Active Directory服务器。默认情况下,IIS中的应用程序池在内置的ApplicationPoolIdentity帐户下运行,该帐户是服务器帐户的本地帐户。您应该进入IIS中的应用程序池设置,并选择具有足够权限的域帐户。

这在VS本地运行时有效,因为您正在使用您的帐户运行应用程序,该帐户可能是可以访问Active Directory的域帐户。

在另一个论坛上得到了答案,但是我没有理由做了很多额外的工作。Asp.net有一个USER.ISINROLE("GROUPNAME"),我使用了它