尽管我已经在这里待了一段时间,但这是我第一次提出问题,所以请温柔地对待我.
我正在使用ASP.NET MVC 3,我想创建一个自定义,Principal所以我可以存储更多关于当前用户的信息,而不是标准,因此不必经常访问数据库.这是我追求的相当标准的东西.我们先说一下电子邮件地址和用户ID.
我决定将对象存储在缓存中,因为我知道不建议将它存储在会话中.
我也不想继续构建User对象,所以我想覆盖User控制器中的对象.所以我可以去User.UserId保证一些东西.
所以我创建了一个这样的自定义主体:
public class MyPrincipal : IPrincipal
{
public MyPrincipal(IIdentity ident, List<string> roles, string email, Guid userId)
{
this._identity = ident;
this._roles = roles;
this._email = email;
this._userId = userId;
}
IIdentity _identity;
public IIdentity Identity
{
get { return _identity; }
}
private List<string> _roles;
public bool IsInRole(string role)
{
return _roles.Contains(role);
}
private string _email;
public string Email
{
get { return _email; …Run Code Online (Sandbox Code Playgroud)