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