C# 添加到User.Identity其他属性 目标

C# 添加到User.Identity其他属性 目标,c#,asp.net-mvc-4,C#,Asp.net Mvc 4,向User.Identity添加类似User.Identity.PermissionLevel的属性 问题 我不知道从哪里开始。有人能给我一些想法吗 情景 正如我所说,我想扩展Identity的PermissionLevel属性。我经常使用这个属性,我不希望执行SQL操作仅仅是为了获得经过身份验证的用户的权限,原因很明显(性能、冗余等) 知识 User.Identity.Name已经填充了用户输入的用于向应用程序进行身份验证的电子邮件 奖金问题 如果我想在应用程序中更改User.Identity

User.Identity
添加类似
User.Identity.PermissionLevel
的属性

问题 我不知道从哪里开始。有人能给我一些想法吗

情景 正如我所说,我想扩展
Identity
PermissionLevel
属性。我经常使用这个属性,我不希望执行SQL操作仅仅是为了获得经过身份验证的用户的权限,原因很明显(性能、冗余等)

知识
User.Identity.Name
已经填充了用户输入的用于向应用程序进行身份验证的电子邮件

奖金问题
如果我想在应用程序中更改
User.Identity.Name
,该怎么办?我的意思是,如果在一个特殊的时刻,我想将
User.Identity.Name
从电子邮件更改为用户名呢?

您应该检查ASP.NET成员资格和配置文件提供商。下面是一个详细说明的示例


User.Identity.Name将具有用户在身份验证时输入的任何内容(电子邮件或用户名,具体取决于您的代码)。

您可以尝试扩展IdentityProvider,以实现您自己的身份验证,而不是ASP.NetLook中的默认实现,以使用角色,它们内置于身份验证/授权系统中。您不应该缓存安全决策。(包括“PermissionLevel”和角色。)这些可能会在用户登录时更改,并应立即生效。@zimdanen我该怎么办?@GuilherModerdenge:您应该为每个请求重新获得角色/权限。