From alias to full name (ASP.NET)

尝试

      添加引用System.DirectoryServices.DLL

      Using System.DirectoryServices;

      假设你的登录名是domainuser

      添加代码:

            string Alias="domain\user";

            DirectoryEntry myDE = new DirectoryEntry("WinNT://"+Alias.Replace(‘\’,’/’));

            string fullname = myDE.Properties["FullName"].Value.ToString();

            在Windows Application的项目中,一点问题都没有.

            在ASP.NET中,不行.

 

Double Hop

           第一个hop当然是从Client连到ASP上,但从ASP调用DirectoryEntry是以ASPNET的身份登录的.但ASPNET是一个本地用户,访问域资源的能力很有限.而访问域资源需要Primary Token,也就是密码明文.但让ASPNET获得Primary Token有很大的安全问题,这时要想完成另一个hop,就需要Impersonate.让ASP系统来传递需要的信息.

 

Web.Config

           在ASP中设置Impersonate只需要在Web.Config里设置impersonate="true"和authentication mode="Windows".

更多信息:http://msdn.microsoft.com/library/en-us/sds/sds/troubleshooting_authentication_problems_on_asp_pages.asp

 

此条目发表在计算机与 Internet分类目录。将固定链接加入收藏夹。

发表回复