Windows身份验证混合

时间:2011-05-27 13:58:58

标签: c# .net asp.net-membership windows-authentication asp.net-mvc

我正在为Intranet MVC应用程序使用Windows身份验证。我想在身份验证过程中添加其他逻辑。换句话说,在AD中也存在,用户在进行身份验证之前还必须存在于自定义数据库中。

他们也应该退出MVC应用程序,并使用相同的AD标识再次登录,但选择了不同的部门。

我不确定接近此方法的最佳方法,因为启用Windows身份验证会阻止运行任何自定义成员资格提供程序。

2 个答案:

答案 0 :(得分:2)

我认为您必须使用域机制,并检查用户是否处于角色中。

Scott Gu的描述:

http://weblogs.asp.net/scottgu/archive/2006/07/12/Recipe_3A00_-Enabling-Windows-Authentication-within-an-Intranet-ASP.NET-Web-application.aspx

MSDN说明:

http://msdn.microsoft.com/en-us/library/ff647405.aspx

...这实际上比在域中创建SQL帐户权限更容易

答案 1 :(得分:1)

如果您正在使用,那么IE将通过这些凭据发送到IIS。要减少依赖性并且AD可以访问且足够快,您可以将AD信息提取到应用程序本地的某些表中,然后使用这些表。不断广播到AD可能会导致你的应用程序运行缓慢。一旦您有一个AdUsers和Group列表,然后在一些本地数据库表中,那么当一个网站mvc用户,他们可以看到他们所属的广告组的选择列表。当他们选择了他们所属的AD组之一时,将组设置为cookie和/或会话状态。 这样做的一个问题是您的AD数据库表需要从广告中提取并经常更新。 只是其中一个......