1

我们有一个内部的工作跟踪系统,有10个人使用。目前我们使用Forms身份验证。登录表单由用户输入其名称的文本框组成,然后我们设置表单身份验证cookie。没有密码。ASP.NET MVC Windows认证集成

FormsAuthentication.SetAuthCookie(userName, true); 

我们现在可以通过调用User.Identity.Name使用用户名保存到数据库,并在屏幕上显示的各种控制器。

到目前为止,这种简单的方法已经非常完美,但现在我们已经准备好开始使用活动目录对用户进行身份验证。我们希望用户能够使用他们的域用户名和密码登录。

所以我们启用Windows身份验证。

但问题是,现在User.Identity.Name采用DOMAIN \ USER的格式。假设有可能有一天某些用户在我们的工作跟踪系统中将拥有与他们的用户名不同的域用户名。

什么是为用户分配“作业跟踪器用户名”的最佳方式,以便他们可以用他们的域用户名登录,但作业跟踪器可以使用不同的用户名登录作业并显示用户名。

我知道我可以使用会话,或者我可以打电话给数据库,但有没有更正确的方法来做到这一点?

回答

0

最后我切换到窗体身份验证,因为Windows身份验证不适用于某些Android手机。我还使用ActiveDirectoryMembershipProvider根据域对用户进行身份验证。有关更多信息,请参阅有关此主题的其他问题。

0

首先决定你要存储信息的位置。这可能是一个数据库,Active Directory或其他。然后决定如何维护它(例如,管理用户界面,可能受基于角色的安全保护,或者如果它存储在Active Directory中,则可以将此作业委派给AD管理员)。

之后,它可能会进行查找,并可能将查找到的值缓存在Session中,或者缓存中。

+0

我想将它存储在数据库中并缓存它是有意义的,但是如何检索它? – NoPyGod

+0

我的意思是,是否有一个地方我可以设置它,并像User.Identity.Name – NoPyGod

+0

那样容易地找回它如果你想要内置的东西,你可以使用ASP.NET Profile属性:http://msdn.microsoft。 com/en-us/library/2y3fs9xs(v = vs.100).aspx。否则,只需推出自己的。 – Joe