0

在 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);

但它不起作用:(

请帮我!

4

3 回答 3

3

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

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

然后,当它起作用时,请阅读有关SQL 注入的内容以及为什么构造这样的 SQL 字符串是一个坏主意

于 2012-08-03T10:32:39.803 回答
0

要了解差异,试试这个;

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

使用 Request.LogonUserIdentity.Name。

于 2012-08-03T10:33:57.167 回答
0

请参考这篇文章- 它应该可以帮助您从中获取正确的值Page.User.Identity.Name,然后您可以通过确保您的数据库具有基于它返回的值的匹配值来从那里开始。

于 2012-08-03T09:51:31.120 回答