成员资格列出所有用户配置文件
本文关键字:用户 配置文件 成员 | 更新日期: 2023-09-27 18:28:02
我需要列出特定用户的所有配置文件,但我找不到如何做到这一点。
public abstract ProfileInfoCollection FindProfilesByUserName(
ProfileAuthenticationOption authenticationOption,
string usernameToMatch
)
在这里给我返回大量不需要的东西示例:
"UserName": "Alex",
"IsAnonymous": false,
"IsDirty": false,
"LastActivityDate": "2013-08-16T00:44:30.98+03:00",
"LastUpdatedDate": "2013-08-16T00:25:15.663+03:00",
"Properties": [
{
"Name": "Name.First",
"IsReadOnly": false,
"DefaultValue": "",
"PropertyType": "System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
"SerializeAs": 0,
"Provider": {
"ApplicationName": "/",
"Name": "AspNetSqlProfileProvider",
"Description": "SQL profile provider."
},
"Attributes": {
"AllowAnonymous": false
},
"ThrowOnErrorDeserializing": false,
"ThrowOnErrorSerializing": true
}
]
有没有办法只列出web.config配置文件中使用的/列出的?
更新:我也试着写我的一个提供者扩展,但我找不到ProfileBase保存配置文件/配置文件组的位置。
谢谢!
经过长时间的搜索,我只找到了一种解决问题的方法。
我写了一个简单的函数,例如:
public Dictionary<string, ProfileGroupBase> GetGroupProfiles(MembershipUser user, string[] groups)
{
return groups.ToDictionary(group => group, GetUserProfile(user).GetProfileGroup);
}
public Dictionary<string, object> GetProfile(MembershipUser user, string[] properties)
{
return properties.ToDictionary(prop => prop, prop => UserProfile(user).GetPropertyValue(prop));
}
用途:
x.GetGroupProfiles(Membership.GetUser("Rafael"), new[] { "Name" })