[英]I can't get windows authentication to work on IIS website
背景 :
我正在为公司的Intranet(“ 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”为空白。
我已经浏览了很多堆栈溢出问题和答案,但还没有找到解决我的问题的方法,我们将不胜感激!
我找到了解决方案,将IIS_IUSRS
添加到允许的网站文件夹权限中,并赋予了完全访问权限,以使我的网站能够正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.