System.Security.Principal.WindowsIdentity.GetCurrent().Name 有效

发布于 2024-07-19 00:59:30 字数 736 浏览 2 评论 0原文

我正在使用 System.Security.Principal.WindowsIdentity.GetCurrent().Name(在我的 web.config 中使用 Windows 身份验证)来获取客户端用户名。

我的问题是,当我将页面放到 Intranet 上时,这段代码是否有效,因为我需要在会话中存储用户名以供以后使用。

我能否使用此代码获取用户用于登录我的页面的用户名?

void Authenticate()
{
    string strLogin = null;

    try
    {
        strLogin = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
        Session.Add("Login", strLogin);
        //Label1.Text = strLogin;
        //Label2.Text = System.Environment.UserName;
    }
    catch (Exception ex)
    {
        Response.Write(strLogin);
        Response.Write("<br/>handled:" + ex.Message.ToString());
        Response.End();
    }
    finally
    {
        GC.Collect();
    }
}

I am using System.Security.Principal.WindowsIdentity.GetCurrent().Name (with windows authentication in my web.config) to get the client username.

My question is whether this code works when I put the page onto the intranet, because I need to store the username within the session for later use.

Will I be able to get the username the user used to log into my page using this code?

void Authenticate()
{
    string strLogin = null;

    try
    {
        strLogin = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
        Session.Add("Login", strLogin);
        //Label1.Text = strLogin;
        //Label2.Text = System.Environment.UserName;
    }
    catch (Exception ex)
    {
        Response.Write(strLogin);
        Response.Write("<br/>handled:" + ex.Message.ToString());
        Response.End();
    }
    finally
    {
        GC.Collect();
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

巨坚强 2024-07-26 00:59:30

您需要将应用程序配置为模拟正在访问它的 Windows 用户,方法是在 Web.Config 中的身份验证元素后添加以下元素:

<identity impersonate="true"/>

如果未将 impersonate 设置为 true,则工作进程将作为网络服务或 ASPNET 运行帐户,具体取决于您的 IIS 版本。

You will need to configure the application to impersonate the Windows user who is accessing it by adding the following element after the authentication element in the Web.Config:

<identity impersonate="true"/>

If you do not set impersonate to true then the worker process runs as the Network Service or ASPNET account, depending on your version of IIS.

诠释孤独 2024-07-26 00:59:30

是的。 它也适用于 Page.User.Identity.Name

Yes. and it also works in Page.User.Identity.Name

污味仙女 2024-07-26 00:59:30

如果您的用户登录您的网站,您可以通过 Page.User.Identity.Name 获取当前用户的名称。

If your users logon on your website, the you can get the name of the current user with Page.User.Identity.Name.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文