【问题标题】:How to set up windows authentication just for a single route in ASP.NET MVC on iis6?如何在 iis6 上为 ASP.NET MVC 中的单个路由设置 Windows 身份验证?
【发布时间】:2010-09-30 07:31:07
【问题描述】:

我正在开发一个 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 Server-Side blog 它并不完美(Mike Volodarsky 必须创建自定义表单身份验证模块),但它可以工作。

【问题讨论】:

    标签: asp.net-mvc iis-6 windows-authentication


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多