【发布时间】:2012-11-22 20:52:27
【问题描述】:
我们有一个可供 10 人左右使用的内部工作跟踪系统。目前我们使用表单身份验证。登录表单由一个文本框组成,用户在其中输入他们的姓名,然后我们设置表单身份验证 cookie。没有密码。
FormsAuthentication.SetAuthCookie(userName, true);
我们现在可以使用用户名保存到数据库并通过调用 User.Identity.Name 在各种控制器的屏幕上显示。
到目前为止,这种简单的方法已经足够了,但现在我们准备开始使用 Active Directory 对用户进行身份验证。我们希望用户能够使用他们的域用户名和密码登录。
所以我们启用 Windows 身份验证。
然而,问题是现在 User.Identity.Name 采用 DOMAIN\USER 格式。也有可能有一天某个用户的域用户名与我们的工作跟踪系统中的用户名不同。
为用户分配“工作跟踪器用户名”的最佳方式是什么,以便他们可以使用其域用户名登录,但工作跟踪器可以记录工作并使用不同的用户名显示人员姓名。
我知道我可以使用会话,或者我可以调用数据库,但是有没有更正确的方法呢?
【问题讨论】:
标签: c# asp.net-mvc authentication active-directory asp.net-membership