场景:


IIS 7.5的https asp / asp.net网站运行(Windows Server 2008)
当前未配置IIS且未安装Windows身份验证的IIS当前配置为允许匿名身份验证和表单身份验证,asp.net模拟被禁用(我知道为此需要安装Windows身份验证。)
面向内部和外部用户的单个自定义登录页面


要求:


内部用户在捕获其LOGON名称的同时无缝登录(窗口身份验证)
应该提示外部用户(不在域上)手动登录


问题:


可以使用什么方法来实现呢?
寻找IIS 7.5和web.config设置


找到的方法:


在1个网站中制作2个页面,即winlogin和weblogin(首页)。在winlogin.aspx上允许Windows auth = true和匿名auth = false,在weblogin.aspx上反之亦然
使用ip的用户访问weblogin(如果已知ip)重定向到winlogin以捕获登录,如果ip未知则重定向到weblogin
将winlogin.aspx作为主页并将401错误重定向到weblogin.aspx

最佳答案

这是配置IIS以进行集成身份验证的方法。

http://netpl.blogspot.com/2012/06/iis-75-integrated-security-with-no.html

这将使您的站点可供Intranet用户使用,而无需输入凭据提示。

请注意,这也适用于Web用户。作为HTTP 401的结果,将显示一个内置的Web浏览器窗口。用户提供其凭据并已进入。

如果您想显示自己的自定义Web表单是401(未经授权)的结果,则必须欺骗浏览器:

http://www.codeproject.com/Articles/11202/Redirecting-to-custom-401-page-when-quot-Access-de

这样,您可以将未经授权的响应重定向到您选择的Web表单(例如,显示asp.net登录表单)。

尽管可以轻松配置集成身份验证,但是在设置混合(集成/表单)身份验证时准备进行大量实验。各种版本的IIS都会发生变化。如果池处于经典模式还是集成模式,IIS7的行为也会有所不同。

关于c# - Windows和IIS 7.5上的匿名身份验证,允许内部自动登录和外部手动登录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12266033/

10-17 00:23