Asp.net Can';t访问类的atribute
我编写了一段代码来获取与HttpContext匹配的用户属性,但是当我试图访问用户属性时,该属性在外部类中是不可见的。示例这是我的Auth类和用户attrAsp.net Can';t访问类的atribute,asp.net,class,attributes,Asp.net,Class,Attributes,我编写了一段代码来获取与HttpContext匹配的用户属性,但是当我试图访问用户属性时,该属性在外部类中是不可见的。示例这是我的Auth类和用户attr public class Auth { IBaseRepository<User> _users; public Auth(IBaseRepository<User> user) { this._users = user; } private const
public class Auth
{
IBaseRepository<User> _users;
public Auth(IBaseRepository<User> user)
{
this._users = user;
}
private const string UserKey = "simpleBlog.Atuh.UserKey";
public virtual User User
{
get
{
if (!HttpContext.Current.User.Identity.IsAuthenticated)
return null;
var user = HttpContext.Current.Items[UserKey] as User;
if (user == null)
{
user = _users.GetAll().FirstOrDefault(u => u.Name == HttpContext.Current.User.Identity.Name);
if (user == null)
return null;
HttpContext.Current.Items[UserKey] = user;
}
return user;
}
}
}
公共类身份验证
{
IBaseRepository用户;
公共身份验证(IBaseRepository用户)
{
这是.\u users=user;
}
private const string UserKey=“simpleBlog.Atuh.UserKey”;
公共虚拟用户
{
得到
{
如果(!HttpContext.Current.User.Identity.IsAuthenticated)
返回null;
var user=HttpContext.Current.Items[UserKey]作为用户;
if(user==null)
{
user=\u users.GetAll().FirstOrDefault(u=>u.Name==HttpContext.Current.user.Identity.Name);
if(user==null)
返回null;
HttpContext.Current.Items[UserKey]=用户;
}
返回用户;
}
}
}
要从外部类获取用户,显示的选项是“Equals”、“ReferenceEquals”
必须提到我正在使用依赖项注入您忘记了使用new关键字实例化类。如果您没有实例化该类,那么只提供了用static关键字标记的类方法
var baseRepository = new BaseRepository<user>();
var auth = new Auth(baseRepository);
// Now you can access auth.User
console.log(auth.User.Name);
var baseRepository=new baseRepository();
var auth=新的auth(baseRepository);
//现在您可以访问auth.User
console.log(auth.User.Name);
解决方案是让用户保持静态,但我不能,因为注入依赖项。