我希望在经过身份验证的用户中存储额外的信息,这样我就可以轻松地访问它(例如,像User.Identity.Id ),而不仅仅是名称,因为我计划让它不是唯一的。
到目前为止,我已经了解到我应该考虑实现自定义主体和/或标识,但我不确定如何进行。我一直在寻找关于这个问题的文档和教程,但我在不同的地方找到了相关的东西,我发现它有点令人困惑。
我已经看到了如何将自定义信息添加到user data属性中的身份验证cookie中,但我希望获得单元测试的依赖项注入的好处,我可以使用主体和标识。
如果我想实现我自己的主体或身份,我需要考虑的确切的步骤是什么?
在这种情况下,我能做的最简单的事情是什么(只需添加ID并保留所有默认值)?“默认”将包括默认提供程序(成员资格、角色等)。
我看过other question,但我希望答案之间不留任何漏洞,比如示例中AuthenticateRequest事件中的角色魔术字符串。相反,我需要知道如何将角色从默认SqlRoleProvider添加到当前用户:何时何地添加角色,以及是否需要执行其他操作以将新类与其他默认提供程序连接起来。
如果能够转到一个示例ASP.NET mvc2应用程序(例如,来自visual studio 2010模板),进行编辑并使其工作,那将是非常棒的。
编辑:我编辑了这个问题,以便更好地表明我在这里很像lost,所以我不能凑合着回答太高级的问题。
附言:在我看来,将ID放在身份中比在主体中更有意义,尽管我在某种程度上已经说明过这一点。
https://stackoverflow.com/questions/3273925
复制相似问题