一组代码,两个身份validationscheme表单身份validation+ Windows身份validation:邪恶较less

我们有一个应用程序,当前需要使用两种身份validationscheme(表单身份validation和Active Directory或NTLM / Windows身份validation)进行访问。

现在的应用程序的方式,有两个IIS站点指向不同的文件夹与相同的一组文件,除了web.config一切都相同。

在任何人燃起我之前,这是一个inheritance的应用程序,但我现在负责。 我们有机会做一些重构,并试图找出最好的方法来进行。

比方说,对应用程序的直接NTLM身份validation的要求。 您必须能够通过集成的AD提示访问应用程序,从而使内部networking上的员工无需手动login即可访问该网站。

现在假设同样的应用程序也需要从组织外的用户访问。 使用表单authentication和成员资格提供程序。 什么是configuration这个应用程序最不可怕的方式?

有没有任何可能的方式来configurationIIS使用一个文件命名的东西除了web.config的configuration文件? 这可能会在这里扼杀这个萌芽。

在源代码pipe理中,我想要走的路是在一个项目中拥有所有的源文件,一个“共享”项目,并使用构build时间事件将自己复制到两个耗费的Web项目上。 然后,我们可以继续在两个不同的文件夹中部署应用程序,但是至less在源代码控制中,通用的源文件将只存在于一个地方。 这个缺点是我们会失去dynamic编译,这真的很糟糕。 但是好一点,那么重复一次。

我做了一些路由实验,但似乎你不能路由到应用程序的根之外的文件,这将需要不同的定义不同的身份validationscheme,所以我不认为这将工作。

任何想法,反馈或想法都非常感激,

BD

Solutions Collecting From Web of "一组代码,两个身份validationscheme表单身份validation+ Windows身份validation:邪恶较less"

您可以尝试一种混合模式身份验证的网站。 检查这篇文章: http : //www.pluralsight-training.net/community/blogs/craig/archive/2004/07/24/1699.aspx 。

这个想法是在ASP.NET配置中具有表单身份验证,并具有匿名访问以及IIS中标记的Windows身份验证。 所以每当服务器发送一个401,浏览器将提供Windows凭据,否则登录表单将被显示。 本文作者提供了一个登录表单上的复选框,将发出401获得Windows凭据,然后使用它们颁发身份验证票证。

另一个变化(从用户体验的角度来看)是有一个默认的页面,将要求IIS中的集成Windows身份验证(无匿名访问)。 内部用户可以访问网站并通过默认页面进行认证,然后默认页面将重定向到应用程序主页/主页面。 要求外部用户使用登录页面进行表单认证,然后重定向到主页面。