2

我正在开发一个 Web 应用程序,我需要将 Forms 和 Windows 身份验证混合在一起。

我选择的方法是:所有网站上的身份验证方法都必须是表单身份验证。有一个表单页面 ( ~/home/Login) 可以通过表单身份验证登录。神奇(和麻烦)是只有一页(比如说~/Home/WinLogin)必须将身份验证方法设置为 Windows 身份验证。该页面用于读取HttpContext.User.Identity.Name获取windows用户名。

我不知道如何在 iis6 上为一条特定路线设置 win auth?

路线看起来像~/Home.ashx/WinLogin。好的,但是然后呢?我试图在虚拟目录和子目录 WinLogin 中创建目录 Home.ashx。但随后~/Home.ashx/Login(使用登录表单)停止工作。

因为在 iis6 上我们必须使用 ashx 处理程序,似乎没有其他方法可以做到这一点,而不是创建一个~/WinLogin.aspx可以完成工作的普通网页。但是我想避免这种情况并仅使用 MVC。

仅供参考如何设置 iis7:IIS 7.0 服务器端博客 它并不完美(Mike Volodarsky 必须创建自定义表单身份验证模块),但它可以工作。

4

1 回答 1

2

您不能像在 IIS7 中那样在 IIS6 中选择性地设置 Windows 身份验证。但是,您可以将 home.ashx 设置为支持匿名和 Windows 身份验证;替换/Login案例中的HttpContext.User属性,在/WinLogin案例中使用windows原理。但是,您需要注意您的代码路径允许您希望他们使用表单身份验证但他们向您提供 Windows 原则身份并忽略它的情况。

于 2009-01-08T16:58:16.530 回答