我无法在IIS网站上使用Windows身份验证

时间:2017-06-06 10:23:56

标签: c# asp.net iis active-directory

背景

我正在制作一个' splash'我的公司内部网(Citrix访问)的页面,要求是欢迎消息是个性化的用户查看它,所以它说“欢迎弗雷德琼斯'。这意味着我必须发出一个活动的目录请求。我想针对活动目录运行此人的登录(Domain \ User.name)并返回其名称(Fred Jones)

我尝试了什么

我在本地使用此代码,但似乎无法在实时服务器上运行:

PrincipalContext ctx = new PrincipalContext(ContextType.Domain,
    "adurl.ad",
    "DC=company,DC=ad",
    "AccountUserName",
    "Password");
//UserPrincipal user = UserPrincipal.Current;
//UserPrincipal user = UserPrincipal.FindByIdentity(ctx, User.Identity.Name);
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "DOMAIN\\User.Name");
string displayName = user.DisplayName;

(本地' DOMAIN \ User.Name'与citrix上的不同,所以我用我的用户名硬编码,这在本地工作)

我已将web配置设置为启用了Windows身份验证,并且我还将服务器配置为仅启用了Windows身份验证。当我进入网站时出现Windows安全弹出窗口,我输入我的详细信息并且它不允许我登录。重复尝试会导致以下错误消息:

  

HTTP错误401.1 - 未经授权

     

您无权使用以下方式查看此目录或页面   您提供的凭据。

如果我启用了匿名身份验证,那么该页面会显示没有Windows安全提示,但会显示' User.Identity.Name'是空白的。

我查看了很多堆栈溢出的问题和答案,并且无法找到解决我的问题的方法,任何帮助都将不胜感激!

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,将IIS_IUSRS添加到允许的网站文件夹权限中并授予完全访问权限,使我的网站能够正常运行。