0

MVC5 控制器有一个 User 属性,它是System.Security.Claims.ClaimsPrincipal

我创建了一个从中继承的基本控制器。此基本控制器的User属性被覆盖mycustomPrinciple ,继承自System.Security.Claims.ClaimsPrincipal

 public abstract partial class BaseController : Controller
    {

        public new mycustomPrinciple User
        {
            get
            {
                return base.User as mycustomPrinciple;  //returns null here
            }
        }
     }

public class mycustomPrinciple : System.Security.Claims.ClaimsPrincipal
    {
        private int _ID;

        public int ID
        {
            get { return _ID; }
            set { _ID = value; }
        }

    }

正如你在上面看到的,它在演员阵容中失败了。我不确定为什么这是因为我在 MVC4 中做了类似的事情,但继承的原则是System.Security.Principal.IPrincipal因为这是控制器用户属性的一种类型。

4

1 回答 1

0

您错过了 ClaimsPrincipal 的要点 - Claims 集合是您保存应用程序特定身份数据的地方。然后我建议添加扩展方法来提取特定声明,例如您的“ID”。

于 2013-07-15T13:50:17.073 回答