首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >一组代码,两个身份验证方案Forms Auth + Windows Auth:邪恶中的较小者

一组代码,两个身份验证方案Forms Auth + Windows Auth:邪恶中的较小者
EN

Stack Overflow用户
提问于 2010-10-22 07:48:17
回答 1查看 675关注 0票数 0

我们有一个应用程序,当前需要使用两种身份验证方案进行访问: Forms Auth和Active Directory或NTLM / Windows Auth。

应用程序现在的方式是,有两个IIS站点指向具有相同文件集的不同文件夹,除了web.config之外,所有内容都相同。

在任何人批评我之前,这是一个继承的应用程序,但无论如何,我现在要对它负责。我们有机会做一些重构,我正在尝试找出最好的继续进行的方法。

假设应用程序的直接NTLM身份验证的要求是成立的。您必须能够使用集成的AD提示符访问应用程序,从而允许内部网络上的员工完全无需手动登录即可访问站点。

现在,假设组织外部的用户也需要访问相同的应用程序。使用窗体身份验证和成员资格提供程序。配置这个应用程序最不可怕的方式是什么?

有没有可能将IIS配置为使用除web.config之外的其他名称的文件作为配置文件?可能会把它扼杀在萌芽状态。

在源代码控制中,我想的方法是将所有的源文件放在一个项目中,一个“共享”项目,并使用构建时事件将它们自己复制到两个消费web项目中。然后,我们可以继续将应用程序部署在两个不同的文件夹中,但至少在源代码控制中,公共源文件将只存在于一个位置。这样做的缺点是我们会失去动态编译,这真的很糟糕。但这总比一大堆重复要好。

我做了一些路由的实验,但似乎你不能路由到应用程序根目录之外的文件,这将需要不同的定义不同的身份验证方案,所以我认为这是行不通的。

我们非常感谢您的任何想法、反馈或想法,

bd

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-10-22 16:59:00

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

其思想是在ASP.NET配置中具有窗体身份验证,并在IIS中标记匿名访问和windows身份验证。因此,每当服务器发送401时,浏览器将提供windows凭据,否则将显示登录表单。本文作者在登录表单上提供了一个复选框,该复选框将发出401以获取windows凭据,然后使用它们来颁发身份验证票证。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3992892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档