0

我整晚都在搞这个,这真的很令人沮丧。我终于可以显示该网页,但由于某种原因它无法正常工作,这意味着它会将我返回到我的错误页面并指出“无法验证用户,请重试!”。我无法弄清楚这一点,因为这可以在我安装了 Visual Studio 的本地机器上完美找到。

请如果有人可以花时间帮助解决这个问题,我整天都在与它作斗争。谢谢

类.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;
    }

身份验证.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;
                }
4

2 回答 2

1

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

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

于 2013-04-07T09:11:04.433 回答
0

在另一个论坛上得到了答案,但我无缘无故地做了很多额外的工作。Asp.net 有一个 USER.ISINROLE("GROUPNAME") 并且我使用了它。

于 2013-04-07T15:09:41.673 回答