0

如果我不使用,我想知道为每个用户保留简单 ID 等数据的最佳方法是什么Session如果我不在ASP.Net 和 ASP.Net MVC 应用程序中

4

2 回答 2

4

您可以使用 cookie,或者如果它只是当前经过身份验证的用户的 ID,则Forms Authenticationcookie 似乎正是为此目的而设计的。可以扩展表单身份验证 cookie,并添加一些您在每个请求中可能需要的其他自定义用户信息(例如用户的名字和姓氏)。这将避免您在每个请求上都访问数据库。您可以使用表单身份验证 cookie 的 UserData 部分。

于 2013-08-18T17:52:25.923 回答
4

您可以将其存储在用户配置文件中,这可以通过从 ProfileBase 继承来扩展,您可以实现自己的属性。

例如:

public class ProfileManager : ProfileBase
{
public ProfileManager() : base()
{

}

[SettingsAllowAnonymous(false)]
[ProfileProvider("AspNetSqlProfileProvider")]
public string DisplayName {
    get
    {
        return base["DisplayName"].ToString();
    }
    set
    {
        base["DisplayName"] = value;
        this.Save();
    }
}
}

在您的配置中,您需要告诉您的应用程序您的配置文件是什么类型:

<profile inherits="ProfileNamespace.ProfileManager" defaultProvider="AspNetSqlProfileProvider" enabled="true">
<providers>
<clear />
<add name="AspNetSqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</profile>
于 2013-08-18T19:11:16.900 回答