如何直接在.aspx中获得ASPNET身份用户ID



i正在使用vs 2013开发Web表单应用程序。在" myreports.aspx"中,我希望用户仅查看他/她发出的报告。在sqldatasource selectParameters中,我定义了USERID参数,然后在CodeBehind中传递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();
    }

有没有使用CodeBehind的任何方法?

谢谢!

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

相关内容

  • 没有找到相关文章

最新更新