如何在SQL查询中访问用户标识

时间:2012-08-03 09:44:58

标签: c# sql-server

在C#3.0 ASP.NET中,我正在编写一个CMS,我想编写一个访问我的用户身份的SQL查询。

在我的母版页中,我有一个SqlDataSource,我想编写一个从表中返回ID的SQL查询

修改

好的,看看这个例子:(这是Page_Load

sqlDataSource1.SelectCommand = String.Format("select PageGroupID from users where Username = {0};", Page.User.Identity.Name);

但它不起作用:(

请帮助我!

3 个答案:

答案 0 :(得分:3)

它不起作用,因为您使用string.format构造无效的SQL字符串 试试这个。

sqlDataSource1.SelectCommand =
     String.Format("select PageGroupID from users where Username = '{0}';", 
     Page.User.Identity.Name); 

然后当它工作时,去阅读 SQL注入以及为什么构建这样的SQL字符串 A BAD IDEA

答案 1 :(得分:0)

请参考此article - 它可以帮助您从Page.User.Identity.Name获得正确的价值,然后您可以确保数据库 匹配< / strong>基于其返回的值。

答案 2 :(得分:0)

要理解差异,试试这个;

string.Format("<br />Page.User.Identity: {0} " +  "<br />Request.LogonUserIdentity: {1}",
Page.User.Identity.Name, Request.LogonUserIdentity.Name);

使用Request.LogonUserIdentity.Name。