首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在MVC-6中扩展ClaimsPrincipal和ClaimsIdentity类

在MVC-6中扩展ClaimsPrincipal和ClaimsIdentity类
EN

Stack Overflow用户
提问于 2015-05-25 23:59:22
回答 1查看 5.1K关注 0票数 4

我已经试着弄清楚这件事好几天了,但我不得不(再次)求助于你们。

正如标题所说,我想实现我的自定义ClaimsPrincipal和ClaimsIdentity,这样我就可以将更多的属性附加到我的身份实例。

我之前在MVC-5中使用Global.asax.cs和继承的BaseController做到了这一点。在MVC-6中,startup.cs似乎是实现这一点的入口点,但我搞不清楚。

这是我的两个类:

代码语言:javascript
运行
复制
public class BaseIdentity : ClaimsIdentity
{
    public Guid UserId { get; set; }
    public Guid OrgId { get; set; }
    public string OrgName { get; set; }

    public BaseIdentity()
    {
    }
}

然后..。

代码语言:javascript
运行
复制
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上可用。

EN

回答 1

Stack Overflow用户

发布于 2017-11-13 23:30:31

我已经使用扩展方法而不是继承实现了这一点。

代码语言:javascript
运行
复制
public static class PrincipalExtensions
{
    public static string GetEmployeeNumber(this ClaimsPrincipal claimsPrincipal)
    {
        return claimsPrincipal.FindFirstValue("EmployeeNumber");
    }
}
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30442019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档