1

这就是问题所在,我正在使用 IIS7 来托管我的 asp.net 网站,现在问题是无论使用什么方法,我总是以当前登录用户的身份获取应用程序池身份(身份验证模式是 windows) . 以下是我用来获取登录用户的代码片段(它们都返回应用程序池标识)。

WindowsIdentity.GetCurrent().Name 
Convert.ToString(Request.ServerVariables["LOGON_USER"])
WindowsPrincipal p.Identity.Name
Convert.ToString(Request.ServerVariables["AUTH_USER"]).Trim()

请帮助我解决这个问题,这让我很困扰。

4

2 回答 2

2

您应该使用 asp.net 模拟:

http://support.microsoft.com/kb/306158

http://msdn.microsoft.com/en-us/library/aa292118%28v=vs.71%29.aspx

http://msdn.microsoft.com/en-us/library/ff647076.aspx

<identity impersonate="true" />

- -更新 - -

查看 IIS 配置:

ASP.NET 模拟问题

----更新2 ----

    public string GetLoggedUserName()
    {
        string rtn = string.Empty;

        if (CurrentContext.User != null)
        {
            if (CurrentContext.User.Identity.IsAuthenticated)
            {
                var gp = CurrentContext.User as WindowsIdentity;
                if (gp!=null)
                {                
                    rtn = gp.Identity.Name;
                }
            }
        }
        return rtn;
    }
于 2013-01-11T08:52:56.863 回答
1

感谢您所提供的所有信息。问题是由于 ASP.NET 中的某种错误,我正在做的是我在 Web 应用程序中从 default.aspx 重定向到 Home.aspx 但问题是在重定向后如何登录用户信息正在丢失。所以我将主页更改为 Home.aspx 并将所有需要的信息存储在那里,现在它可以正常工作了。

感谢 giammin 的帮助,非常感谢/。

于 2013-01-14T11:39:03.523 回答