ASP.NET MVC Windows身份验证在表单身份验证之上

NoP*_*God 5 c# iis asp.net-mvc forms-authentication windows-authentication

我在ASP.NET MVC中开发了一个我们在内部使用的Web应用程序.现在我们希望通过互联网上的服务器提供它 - 当我们在现场做工作时,让生活更轻松.

理想情况下,我只想坚持使用Windows身份验证,以便拥有域帐户的任何人都可以登录.

问题是我已经在应用程序中使用表单身份验证.

我们对应用程序没有任何密码限制,您只需选择要登录的用户,然后提交表单.在服务器端它只是这样做 -

    FormsAuthentication.SetAuthCookie(viewModel.Username, true);
Run Code Online (Sandbox Code Playgroud)

这使用户对象(user.identity.name)在所有控制器和视图中提供用户名.

但是......当我在IIS中启用Windows身份验证时,Web应用程序开始认为user.identity.name是"ourdomain\domainuser".

我想要的是将表单身份验证与Windows身份验证结合使用,但不要以任何方式集成它们.

有没有一种简单的方法来实现这一目标?

Ric*_*SFT 6

ASP.NET团队不正式支持在应用程序中使用混合模式身份验证.如果您在网上搜索,您会发现有关如何执行此操作的博客文章,但请注意,ASP.NET团队不鼓励他们.不鼓励这样做的原因是,从正确的角度来看很难进行推理,并且存在针对这样的设置的轻微攻击,其可以允许恶意客户端伪装成经过身份验证的用户.