C# 在iis windows authentication身份验证下,如何实现域用户自动登录

前言:
该博文产生的背景是有个项目在客户那部署方式为iis windows身份验证,而客户不想每次登录系统都要输入帐
号和密码来登录。因此需要得到域用户,然后进行判断该用户是否可以进入系统。

解决方法:见如下代码。首先要说明下情况,我这边没有客户的环境,虽然自己也搞了个测试服务器,在发布项
目时使用了windows身份验证,但是和客户那的环境还是不同。最终的结果就是取得的用户名永远是测试服务器
的那台信息。在网上寻找资料时,看到的
部分答案就是string userAcc = System.Web.HttpContext.Current.User.Identity.Name.Trim();来获取的,下面的
代码加了一下其它的方法进去。

 string userAcc = System.Web.HttpContext.Current.Request.ServerVariables["LOGON_USER"].Trim();
            if (userAcc == "")
                userAcc = User.Identity.Name.Trim();
  
            int len = userAcc.IndexOf('\\', 0);
            userAcc = userAcc.Substring(len + 1, userAcc.Length - len - 1);

在实际开发中遇到的问题

1:在获取用户名,不管用什么用户名登录,只能获取同一个用户名。

原因:客户的域服务器跟部署网站的服务器不是同一个服务,而且域服务器只分配给部署网站的服务器一个用户名,用来登录域服务器,

         所以在获取的时候只能获取这个用户名 。
posted @ 2017-05-09 18:50  飞鸿踏雪不留痕  阅读(4900)  评论(0编辑  收藏  举报