Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在asp.net c中使用active directory自动验证登录#_C#_Asp.net_Active Directory_C# 3.0_Active Directory Group - Fatal编程技术网

C# 在asp.net c中使用active directory自动验证登录#

C# 在asp.net c中使用active directory自动验证登录#,c#,asp.net,active-directory,c#-3.0,active-directory-group,C#,Asp.net,Active Directory,C# 3.0,Active Directory Group,我正在创建asp.net web应用程序。在这方面,我使用了active directory登录。我有一个名为Validusers的组,当用户登录时,它将用户检查到该Validusers组。如果用户存在于组中,则登录成功,否则登录失败 我做了所有的事情,它在我本地的机器上运行得很好,但是当我发布网站时它就不工作了。我犯了以下错误 Logon failure: unknown user name or bad password. 在我的机器上,它运行良好,但在发布时我遇到了一个错误。我使用以

我正在创建
asp.net web应用程序
。在这方面,我使用了active directory登录。我有一个名为Validusers的组,当用户登录时,它将用户检查到该Validusers组。如果用户存在于组中,则登录成功,否则登录失败

我做了所有的事情,它在我本地的机器上运行得很好,但是当我发布网站时它就不工作了。我犯了以下错误

 Logon failure: unknown user name or bad password. 
在我的机器上,它运行良好,但在发布时我遇到了一个错误。我使用以下代码供您参考

PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "DomainName");
System.Security.Principal.WindowsIdentity MyIdentity = System.Security.Principal.WindowsIdentity.GetCurrent();
string LogUser = MyIdentity.Name.ToString();
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, LogUser);
GroupPrincipal group = GroupPrincipal.FindByIdentity(ctx, "Validusers");Validusers---->Groupname
 if (user.IsMemberOf(group))
 {
    Login success
 }
else
{
Login Failed
}

它将使用Validusers组检查已登录的用户。如果该用户存在于该组中,则登录成功,否则登录失败。我发布此网站时出错。请给出一些解决方案

尽管您提供的关于域和网络与开发计算机和web服务器之间关系的信息非常少,但我假设web服务器与您的代码所依赖的Active Directory服务器没有物理连接。那么web服务器就不可能查询AD目录了。 如果web服务器和AD服务器位于同一网络上,则可能需要对web服务器和AD服务器的防火墙设置进行操作,以确保它们可以通信。 如果web和AD服务器没有通信问题,您应该检查web服务器上运行的代码的“Validusers”的可用性。
当IIS应用程序使用为承载应用程序的应用程序池定义的用户帐户运行时,您应该确保应用程序池标识具有足够的权限来访问这些微妙的信息。

您在哪里发布?您是否已在IIS中勾选集成Windows身份验证?我需要将网站托管到服务器。因此,我正在发布网站这是一个Intranet应用程序,而您正在域中的服务器上发布?是的。我正在域中发布应用程序。您能否明确说明此问题?