.net 在MVC3应用程序中使用windows身份验证时将特定用户帐户重定向到登录页

.net 在MVC3应用程序中使用windows身份验证时将特定用户帐户重定向到登录页,.net,asp.net-mvc-3,active-directory,.net,Asp.net Mvc 3,Active Directory,我正在使用.NETMVC3开发一个应用程序。我使用Windows身份验证和Active Directory进行登录,一切正常。这是一个基于intranet的应用程序 问题是我们有一个登录名,它被一个部门的多个人使用 我希望能够将该帐户重定向到登录页面,这样我就可以提示输入不同的用户名和密码,但似乎找不到通过Windows身份验证实现这一点的方法。如果有的话,我就是看不出MVC在哪里实现了这一点 我已经尝试过使用带有广告的表单身份验证,但我们不希望每个人都必须登录,只需要一个帐户。不幸的是,这是一

我正在使用.NETMVC3开发一个应用程序。我使用Windows身份验证和Active Directory进行登录,一切正常。这是一个基于intranet的应用程序

问题是我们有一个登录名,它被一个部门的多个人使用

我希望能够将该帐户重定向到登录页面,这样我就可以提示输入不同的用户名和密码,但似乎找不到通过Windows身份验证实现这一点的方法。如果有的话,我就是看不出MVC在哪里实现了这一点

我已经尝试过使用带有广告的表单身份验证,但我们不希望每个人都必须登录,只需要一个帐户。不幸的是,这是一个商业决策,我看不到它会改变

在控制器上使用authorize属性在这种情况下也不合适,因为任何用户或组都可以访问所有控制器

我看到的建议似乎围绕着混合内部和外部帐户的窗口和表单身份验证展开,但在本例中,我们所有的帐户都在广告中

有什么办法可以解决这个问题吗


标记这听起来很难,因为如果所有用户和组都可以访问所有区域,那么用户可以只使用单个URL,因此您必须覆盖输入的任何URL

您可以为该特定用户添加另一个组吗

当您想将他们重定向到另一个登录页面时,您是指他们将要在其中输入更多广告凭据的页面吗


你的意思是一个部门的多个人使用他们之间的一个广告帐户登录到多台机器上吗?因为这听起来很糟糕

我建议使用一个类,在该类中可以获取使用Windows身份验证登录的用户名,如下所示:

WindowsIdentity identity = HttpContext.Current.Request.LogonUserIdentity;
然后,您可以使用它来检查它是否是每个人都在使用的主用户。如果是,请注销该用户。注销时,将用户重定向到一个登录页面,用户必须在该页面上使用新的登录名。你甚至可以用它发送状态信息


现在,您可以修改该类,也可以编写自己的自定义类,并在每个需要登录的页面上调用它,这并不理想。

是的,这是为不同的广告帐户输入登录凭据。基本上,这是一个提交表单的系统,这样在批准后,电子邮件会返回给正确的人,这样我们希望他们能够登录以显示自己的详细信息。它是一个用于帮助台访问的通用帐户,由几个不同的人使用。不幸的是,一直都是这样,部门主管不想改变。我同意,这不是一种很好的操作方式。而且,没有办法让他们首先使用自己的凭据登录到电脑上吗?我们当然希望他们这样做,但部门中的用户比电脑多,而且他们整天都在进进出出。嗨,马克,你解决过这个问题吗?如果是这样,你最后做了什么?嗨,多默。我从未以我所希望的方式解决它。由于该系统用于预订资源,我只需检查该登录帐户,然后强制用户从下拉列表中选择其名称-这一切都只是为了电子邮件路由。这不是一个理想的解决方案,但它在这种情况下有效。