0

In C# 3.0 ASP.NET I'm composing a CMS and I want to compose a SQL query that accesses my user identity.

In my master page I have a SqlDataSource that I want to compose a SQL query that returns an ID from a table

EDIT

OK, look at this example: (this is in Page_Load)

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

But it doesn't work :(

Please help me!

4

3 に答える 3

3

string.format を使用して無効な SQL 文字列を作成しているため、機能しません。代わりに、これを試してください。

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

それが機能したら、SQL インジェクションと、このような SQL 文字列の作成がなぜA BAD IDEAであるかについて読んでください。

于 2012-08-03T10:32:39.803 に答える
0

この記事を参照してください- 適切な値を取得するのに役立つはずです。データベースが返すものに基づいて一致するPage.User.Identity.Name値があることを確認することで、そこから進むことができます。

于 2012-08-03T09:51:31.120 に答える
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 に答える