我必须将IIdentity(System.Security.Principal.IIdentity)扩展到IMyIdentity以及以下几个属性
public interface IMyIdentity : IIdentity
{
public bool IsXyz {get;}
public bool IsAbc {get;}
}
现在我以前执行
HttpContext.Current.User.Identity as IIdentity
它过去工作正常,但现在我执行
HttpContext.Current.User.Identity as IMyIdentity
它没有工作并且转换为null,这对我来说是一个问题
整个方法块如下所示
public virtual IMyIdentity GetCurrentUserIdentity(bool ignoreXyz)
{
if (_userProfile != null && _userProfile.IsAnonymous && (ignoreXyz || _userProfile.PointId > 0))
{
return new UserIdentity
{
Name = _userProfile.UserName,
IsAuthenticated = true,
AuthenticationType = UserIdentity.AUTHENTICATION_ANONYMOUS
};
}
else
{
return HttpContext.Current.User.Identity as IMyIdentity;
}
}
请您告诉我该怎么做才能解决这个问题?
答案 0 :(得分:0)
我终于想到将HttpContext.Current.User.Identity的属性转换为我的类型,如下所示
public virtual IMyIdentity GetCurrentUserIdentity(bool ignoreXyz)
{
if (_userProfile != null && _userProfile.IsAnonymous && (ignoreXyz || _userProfile.PointId > 0))
{
return new UserIdentity
{
Name = _userProfile.UserName,
IsAuthenticated = true,
AuthenticationType = UserIdentity.AUTHENTICATION_ANONYMOUS
};
}
else
{
return new UserIdentity
{
Name = HttpContext.Current.User.Identity.UserName,
IsAuthenticated = HttpContext.Current.User.Identity.IsAuthenticated,
AuthenticationType = HttpContext.Current.User.Identity.AuthenticationType
};
}
}