在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);
但它不起作用:(
请帮助我!
答案 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。