我的用户使用我的自定义会员供应商使用电子邮件地址及其密码登录。有没有办法让User.Identity.Name
(或其他内部)返回用户的真实姓名,而不是他们的用户名(或我的电子邮件地址),同时保留电子邮件地址,以便仍然可以使用?如果这不是做我想做的事情的好方法,那么您推荐做些什么呢?如何将User.Identity.Name中的值设置为用户的真实姓名?
我认为“欢迎迈克威尔斯”看起来比“欢迎[email protected]”更好。
我的用户使用我的自定义会员供应商使用电子邮件地址及其密码登录。有没有办法让User.Identity.Name
(或其他内部)返回用户的真实姓名,而不是他们的用户名(或我的电子邮件地址),同时保留电子邮件地址,以便仍然可以使用?如果这不是做我想做的事情的好方法,那么您推荐做些什么呢?如何将User.Identity.Name中的值设置为用户的真实姓名?
我认为“欢迎迈克威尔斯”看起来比“欢迎[email protected]”更好。
您可以将用户的配置文件对象(或名称)添加到Session
变量中,这样就不必为每个页面加载查询数据库。
单独的“用户”数据库表来存储相关的会员表个人信息....
它让你的身份验证和授权数据分开(但联系到)这样,你的自定义用户数据。使它更容易管理恕我直言。
这里最好的方法是实现一个自定义原则,以便字段可用,不要试图“滥用”现有字段。简单地把IPrinciple使用你的原则阶层和参考FullName域(或者无论你怎么称呼它)
Implementing IPrincipal and IIdentity in MVC with use of custom membership and role provider
我喜欢这个主意。 – 2012-03-19 14:49:04
与使用会话对象相比,有更好的体系结构替代方法(如果您尚未使用),Theres在此处强制输入任何内容。你使用魔术字符串卡住了,你必须知道表单验证超时和会话超时不会同步。 – 2012-03-19 16:33:00
@AdamTuliper我认为处理缓存变量生命周期的助手类会正确地完成这项工作。我没有看到那个设计有什么问题。 – 2012-03-19 16:55:54