【发布时间】:2014-01-24 16:06:02
【问题描述】:
我正在使用 VS 2013 开发 Web 表单应用程序。在“MyReports.aspx”中,我希望用户只看到他/她发布的报告。在 SqlDataSource SelectParameters 中,我定义了 UserID 参数,然后在代码隐藏中传递 UserId。但是,我怎样才能直接在 aspx 中做呢?
我尝试添加 Microsoft.AspNet.Identity 命名空间槽
<%@ Import Namespace="Microsoft.AspNet.Identity" %>
然后设置参数如下:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DefaultConnection %>" SelectCommand="SELECT * FROM [ReportsByIssuingUserView] WHERE ([UserID]=@UserID)">
<SelectParameters>
<asp:Parameter Name="UserID" Type="String" DefaultValue="<%: Context.User.Identity.GetUserId() %>"/>
</SelectParameters>
</asp:SqlDataSource>
没有运气......
我现在的代码如下,效果很好:
ASPX:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DefaultConnection %>" SelectCommand="SELECT * FROM [ReportsByIssuingUserView] WHERE ([UserID]=@UserID)">
<SelectParameters>
<asp:Parameter Name="UserID" Type="String"/>
</SelectParameters>
</asp:SqlDataSource>
CS:
protected void Page_Load(object sender, EventArgs e)
{
SqlDataSource1.SelectParameters["UserID"].DefaultValue = Context.User.Identity.GetUserId();
}
有什么方法可以不使用代码隐藏?
谢谢!
【问题讨论】:
标签: c# asp.net asp.net-identity