背景:
我正在制作一个' 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'是空白的。
我查看了很多堆栈溢出的问题和答案,并且无法找到解决我的问题的方法,任何帮助都将不胜感激!
答案 0 :(得分:0)
我找到了解决方案,将IIS_IUSRS
添加到允许的网站文件夹权限中并授予完全访问权限,使我的网站能够正常运行。