2011-05-20 134 views
0

在使用“配置数据源”对话框时,如何仅选择适用于当前登录用户的行?正确的每一行都有一个用户名,它们在注册时为他们创建。我正在使用内置的ASP.NET会员系统。无论如何要做一个Where子句来选择当前用户的用户名?如何根据用户名从数据库中选择行?

+0

您需要获取当前登录的用户名?你能否提供你实际需要的细节? – 2011-05-20 03:59:06

回答

3
HttpContext.Current.User.Identity.Name 

为您提供与当前请求关联的Windows用户名。

要让它进入你的where子句,你必须一个参数添加到选择命令

<asp:SqlDataSource ID="SqlDataSource1" runat="server" SelectCommand="Select * From tbl Where user = @user"> 
    <SelectParameters> 
     <asp:Parameter Name="user" Type="String" /> 
    </SelectParameters> 
</asp:SqlDataSource> 

,然后设置代码背后的价值:

SqlDataSource1.SelectParameters["user"].DefaultValue = HttpContext.Current.User.Identity.Name; 

可能有其他的方法来在那里得到它,但这应该是最简单的一个。

微软的文章,对数据源使用参数:http://msdn.microsoft.com/en-us/library/z72eefad.aspx

0

你只需要参数添加到SQL数据源提取从数据库的用户名和密码。

或者您可以创建一个存储过程来选择用户名和密码。 ,然后在代码后面传递用户名和密码的值。