Я только недавно пытался сделать то же самое.Это было слишком сильной головной болью для того, что я хотел сделать, поэтому я закончил создание формы с нуля.Если вы хотите использовать подробное представление, вы можете вызвать
aspnet_Membership_GetUserByName или aspnet_Membership_GetUserByEmail или aspnet_Membership_GetUserByUserId
и заполнить DataTable или DataBet с помощью DataView и DataBet.Однако, если вы можете избежать использования DetailsView для этого, я бы порекомендовал его, потому что вы обходите поставщика членства, который полностью отвергает цели его получения.
Попробуйте расширить SqlMembershipProvide
r насоздание CustomMembershipProvider
и переопределение и перегрузка метода GetUser()
для возврата DataTable
, который можно легко привязать к представлению сведений.
Это будет выглядеть примерно так>
using System.Web.Security;
using System.Data;
namespace yourNameSpace
{
public class CustomSqlMembershipProvider : SqlMembershipProvider
{
public override MembershipUser GetUser(object providerUserKey, bool userIsOnline)
{
return base.GetUser(providerUserKey, userIsOnline);
}
public DataTable GetUser(string UserName)
{
MembershipUser user = base.GetUser(username, false);
//code to create a datatable and populate it with user properties.
DataTable dt = new DataTable();
//Add columns
DataColumn column = new DataColumn();
//add columns to table
return dt;
}
}
}
Когда вы закончите, убедитесь, что вы указали нового поставщика услуг в своем web.config.
Помогите, это даст вам направление.Это требует некоторой работы, но, в конце концов, это проще в обслуживании, чем устранение неисправностей любого членства, обходящего код.