Итак, у меня есть веб-приложение asp.net (не веб-сайт), которое я пытаюсь поддерживать профили для анонимных пользователей.У меня есть форма, и я хочу, чтобы анонимные пользователи могли вводить свое имя и адрес электронной почты только один раз, и чтобы эта информация автоматически была доступна для них при следующей загрузке.
В моем файле Web.config у меня есть настройка анонимного идентификатора, например, так:
<anonymousIdentification enabled="true" cookieless="AutoDetect" />
У меня настроен раздел профиля:мое приложение является веб-приложением, а не веб-сайтом. Я использую профили с помощью этого пользовательского объекта:
public class UserProfile : ProfileBase
{
public static UserProfile GetUserProfile(string username)
{
return Create(username) as UserProfile;
}
public static UserProfile GetUserProfile()
{
return Create(Membership.GetUser().UserName) as UserProfile;
}
[SettingsAllowAnonymous(true)]
public string FullName
{
get { return base["FullName"] as string; }
set { base["FullName"] = value; }
}
[SettingsAllowAnonymous(true)]
public string BuildEmail
{
get { return base["BuildEmail"] as string; }
set { base["BuildEvmail"] = value; }
}
}
Этот код основан на этой ссылке .
Проблема в том, что этот код не поддерживает анонимных пользователей, или, если это так, я не знаю как.Я не могу использовать метод GetUserProfile()
без параметров, потому что, если пользователь является анонимным, Membership.GetUser()
будет нулевым.Я мог бы передать токен анонимного идентификатора в первый метод GetUserProfile(string username)
, но я не могу найти способ получить токен анонимного идентификатора для текущего пользователя.
Кто-нибудь знает, как получить эту информацию?Google, похоже, не возвращает полезных результатов.
Спасибо,