【问题标题】:how to get AspNet Identity User ID directly in .aspx?如何直接在 .aspx 中获取 AspNet Identity 用户 ID?
【发布时间】: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


    【解决方案1】:

    在您的 ASPX 页面中内联使用 &lt;%= Context.User.Identity.GetUserId() %&gt; 表达式语法。

    【讨论】:

    • 我使用了这一行&lt;asp:Parameter Name="UserID" Type="Object" DefaultValue="&lt;%= Context.User.Identity.GetUserId() %&gt;" /&gt;,但查询没有返回值。
    猜你喜欢
    • 1970-01-01
    • 2017-11-22
    • 1970-01-01
    • 1970-01-01
    • 2014-05-02
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2019-03-24
    相关资源
    最近更新 更多