我有一个ASP.NET MVC应用程序,完全依赖Forms身份验证。但是,有一组路由(/report/%),我需要强制使用集成的Windows身份验证,因为这些页面需要模拟当前用户(出于安全原因)。
如果我将整个站点设置为集成的Windows身份验证,这一切都可以正常工作,但是Firefox提示用户输入用户名/密码两次,因为他们访问站点主页时会分别提示进行Windows身份验证和Forms身份验证,而IE只提示进行Forms身份验证。这没问题,我知道这是Firefox的默认行为,但是为了不惹恼用户,我被要求将Windows身份验证要求限制在站点的/report/*部分,这样他们只有在访问/report/%中的任何页面时才会提示。
在ASP.NET WebForms中,这很容易,因为有一个物理的/report文件夹来放置身份验证配置,但在MVC中,此URL是虚拟的,因此我无法这样做。有人知道好的方法吗?我已经尝试创建一个“网关”aspx页面,用户需要先通过该页面才能重定向到适当的报告页面,虽然Firefox确实在正确的时候提示用户输入Windows凭据,但它似乎无法在随后的请求中继续发送这些详细信息到任何/report/%页面。有什么想法吗?非常感激!
如果我将整个站点设置为集成的Windows身份验证,这一切都可以正常工作,但是Firefox提示用户输入用户名/密码两次,因为他们访问站点主页时会分别提示进行Windows身份验证和Forms身份验证,而IE只提示进行Forms身份验证。这没问题,我知道这是Firefox的默认行为,但是为了不惹恼用户,我被要求将Windows身份验证要求限制在站点的/report/*部分,这样他们只有在访问/report/%中的任何页面时才会提示。
在ASP.NET WebForms中,这很容易,因为有一个物理的/report文件夹来放置身份验证配置,但在MVC中,此URL是虚拟的,因此我无法这样做。有人知道好的方法吗?我已经尝试创建一个“网关”aspx页面,用户需要先通过该页面才能重定向到适当的报告页面,虽然Firefox确实在正确的时候提示用户输入Windows凭据,但它似乎无法在随后的请求中继续发送这些详细信息到任何/report/%页面。有什么想法吗?非常感激!