我有一个 WSS 3.0 站点(没有 MOSS),它使用自定义表单身份验证成员身份提供程序和角色管理器,针对远程 Web 服务对用户进行身份验证(尽管目前它适用于 moq 数据)。我的问题是:登录时用户的姓名显示为他们的登录名,而不是他们的全名。
我设置了我的提供程序,以便同时存储用户名和全名,并且当被询问时(例如 GetUserByUsername),任何一个值都将返回一个以全名作为用户名的 MembershipUser 对象。这样做的效果是,在共享点人员选择器中,输入用户用户名会导致自动完成将其转换为他们的全名,就像标准的 windows auth 一样。
但是,对提供程序进行断点,当登录到站点时,仅调用提供程序上的 ValidateUser 方法,它们永远不是对我修改过的 MembershipUser 对象的请求。查看内容数据库中的 UserInfo 表,将创建一个新条目,并将用户名 (tp_title) 设置为他们的登录名。
没有对数据库运行直接查询(我不会这样做),我不确定如何为自定义 FBA 用户提供用户友好的用户名。帮助将不胜感激。