C# 在post C中包含登录名#

C# 在post C中包含登录名#,c#,C#,我是C#的初学者,我正在尝试做一项简单的任务。我正在做一个非常简单的留言板,你可以通过数据库登录,然后发布到一个.txt文件。我想写一篇文章,包括你登录时使用的用户名,但我无法让它工作。我试图从数据库中提取用户名并将其包含在我的帖子中,但它只是一个空白字段 它在本地服务器上运行。这是我的连接字符串: <connectionStrings> <add name="Myconnection" connectionString="Data Sou

我是C#的初学者,我正在尝试做一项简单的任务。我正在做一个非常简单的留言板,你可以通过数据库登录,然后发布到一个.txt文件。我想写一篇文章,包括你登录时使用的用户名,但我无法让它工作。我试图从数据库中提取用户名并将其包含在我的帖子中,但它只是一个空白字段

它在本地服务器上运行。这是我的连接字符串:

<connectionStrings>
    <add name="Myconnection" connectionString="Data Source=DESKTOP-5J21T5R;Initial Catalog=Login;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
我在文本框中写入消息,并在列表框中提取以前的消息

这是登录字符串:

protected void Page_Load(object sender, EventArgs e)
{

    if (Session["TxtUsername"] != null)
    {
        LabUsrname.Text = Session["TxtUsername"].ToString();
    }
    else
    {
        Response.Redirect("Default.aspx");
    }
}

抱歉,如果这太令人困惑了,但我需要了解如何发布帖子,其中包括登录用户的用户名。这是否可行?

集成安全性=True部分表示您正在使用Windows身份验证登录数据库,而不是使用Sql身份验证(使用
用户名/pw
)。
因此,
connectionStringBuilder.UserID返回
null

如果希望获取当前Windows用户的名称:
System.Security.Principal.WindowsIdentity.GetCurrent().name

对于SQL身份验证,您的连接字符串应如下所示:
Server=myserver地址;数据库=myDataBase;用户Id=我的用户名;密码=我的密码
这样,您将获得值
UserID


您可以找到更多连接字符串示例

登录名是什么意思?你是说数据库用户的名字?您没有用户id(
null
),因为您正在使用windows身份验证。你的意思是获取windows帐户的用户名吗?我是指数据库用户的用户名,就像我使用用户名访问留言板一样。我想在帖子中包含该用户名。Ooof,你正在学习C#,你是从一个WebForms项目开始的?不,我还没有开始,我现在就在这里:)我正在做作业,我不知道我做错了什么。你正在使用windows身份验证登录数据库(集成安全性=True
部分),而不是用户和pw。这就是为什么
UserID
返回null。澄清
username/pw
仅与SQL身份验证相关。要在Windows身份验证中切换username,需要
Impersonate()
protected void Page_Load(object sender, EventArgs e)
{

    if (Session["TxtUsername"] != null)
    {
        LabUsrname.Text = Session["TxtUsername"].ToString();
    }
    else
    {
        Response.Redirect("Default.aspx");
    }
}