如何直接在.aspx中获取AspNet Identity User ID?

时间:2014-01-24 16:06:02

标签: c# asp.net asp.net-identity

我正在使用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();
    }

有没有办法不使用代码隐藏呢?

谢谢!

1 个答案:

答案 0 :(得分:1)

在ASPX页面中使用内联的<%= Context.User.Identity.GetUserId() %>表达式语法。