У меня есть пользовательский класс пользователя, который наследуется от класса ClaimsPrincipal в моем основном приложении asp.net, как это
public class SecurityUser : ClaimsPrincipal
{
private bool _isOwnerUser =false;
public bool IsOwnerUser
{
get { return _isOwnerUser; }
}
}
И затем в моем контроллере я пытаюсь выставить свои основные претензии моему пользовательскому SecurityUserкак это
public class HomeController : Controller
{
protected SecurityUser SecurityUser
{
get
{
if (HttpContext.User.Identity.IsAuthenticated) return (SecurityUser)HttpContext.User;
else return null;
}
}
}
Однако я получаю ошибку
Невозможно привести объект типа 'System.Security.Claims.ClaimsPrincipal' к типу 'TestApp.SecurityUser'. '
, что означает, что ClaimsPrincipal не может быть преобразован в моего настраиваемого пользователя безопасности.
Я не понимаю, почему это невозможно, потому что в моем приложении asp.net класс SecurityUser унаследован от IPrincipal, и я смог выполнить приведение вот так
protected SecurityUser SecurityUser
{
get
{
if (this.HttpContext.User.Identity.IsAuthenticated) return (SecurityUser)this.HttpContext.User;
else return null;
}
}
HttpContext.User.Identity.IsAuthenticated
верно