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:在获取用户名,不管用什么用户名登录,只能获取同一个用户名。

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

         所以在获取的时候只能获取这个用户名 。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM