I use EF 4, C# and MS Membership Provider.
I have a GridView with DataSource an EntityDataSource web control.
I would like filter Data using EntityDataSource
You cannot bind the user's identity declaratively in markup directly to the EntityDataSource. But there are basically two workarounds:
The first is the easier one but requires code-behind. You can use a generic asp:Parameter and set its value in code-behind to the user's identity:
Markup:
Code-behind:
protected void Page_Load(object sender, EventArgs e)
{
MyEntityDataSource.WhereParameters["Username"].DefaultValue =
User.Identity.Name;
}
The second way is to create a custom parameter. An example how to do that is shown here. Note: The example is based on a asp:SqlDataSource but it should work as well for an EntityDataSource if you make sure that you use WhereParameters in the EntityDataSource instead of SelectParameters in the SqlDataSource.