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应用程序,而您正在域中的服务器上发布?是的。我正在域中发布应用程序。您能否明确说明此问题?