所以我有一个 asp.net Web 应用程序(不是网站),我试图支持匿名用户的配置文件。我有一个表格,我希望匿名用户只能输入他们的姓名和电子邮件一次,并在下次加载时自动访问该信息。
在我的 Web.config 中,我有这样的匿名 ID 设置:
<anonymousIdentification enabled="true" cookieless="AutoDetect" />
我的个人资料部分设置如下:
<profile defaultProvider="SqlProvider" enabled="true" inherits="QA_Web_Tools.UserProfile">
<providers>
<clear />
<add connectionStringName="QAToolsConnectionString" name="SqlProvider"
type="System.Web.Profile.SqlProfileProvider" />
</providers>
</profile>
最后,由于我的应用程序是 Web 应用程序而不是网站,我通过这个自定义对象使用配置文件:
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()
则为空。我可以将匿名 ID 令牌传递给第GetUserProfile(string username)
一种方法,但我找不到任何方法来获取当前用户的匿名 ID 令牌。
有谁知道如何获取这些信息?谷歌似乎没有返回有用的结果。
谢谢,