我已经试着弄清楚这件事好几天了,但我不得不(再次)求助于你们。
正如标题所说,我想实现我的自定义ClaimsPrincipal和ClaimsIdentity,这样我就可以将更多的属性附加到我的身份实例。
我之前在MVC-5中使用Global.asax.cs和继承的BaseController做到了这一点。在MVC-6中,startup.cs似乎是实现这一点的入口点,但我搞不清楚。
这是我的两个类:
public class BaseIdentity : ClaimsIdentity
{
public Guid UserId { get; set; }
public Guid OrgId { get; set; }
public string OrgName { get; set; }
public BaseIdentity()
{
}
}
然后..。
public class BasePrincipal : ClaimsPrincipal
{
private readonly BaseIdentity _identity;
public BasePrincipal(BaseIdentity identity)
{
_identity = identity;
}
public new BaseIdentity Identity
{
get { return _identity; }
}
}
在创建/检索Auth cookie时,如何使用这些类而不是默认类?
有一个名为IApplicationBuilder.UseClaimsTransformation()
的方法,但找不到任何关于如何使用它的文档-即使它适用于此场景?
在这一点上非常感谢!:)
顺便说一句:我想指出的是,一周前,当我第一次遇到这个挑战时,我问过a similar question。我得到了一个答案,但这确实是我必须解决的问题,使我的网站在MVC-6上可用。
发布于 2017-11-13 23:30:31
我已经使用扩展方法而不是继承实现了这一点。
public static class PrincipalExtensions
{
public static string GetEmployeeNumber(this ClaimsPrincipal claimsPrincipal)
{
return claimsPrincipal.FindFirstValue("EmployeeNumber");
}
}
https://stackoverflow.com/questions/30442019
复制相似问题