我已经搜索过这个和许多其他网站以找到答案,但每次都会缩短。如果这是重复的,我很高兴接受原始问题的指示并给出答案:
我已经构建了一个MVC 4站点,并且我在需要时使用了Authorize标记,这正在按预期工作。
我的问题是我需要一种机制来提示用户(已经登录或域中的其他有效用户)在一个页面上输入他们的Windows凭据,以便确认/授权该用户。这不是授权过滤器正在做的事情。授权过滤器实际上是对用户进行身份验证。从而相应地更改User.Identity信息。
是否可以在不实际更改User对象的情况下授权用户(不进行身份验证)?
只是返回401响应强制Windows提示,但反过来,它执行身份验证,而不是授权。
虽然可以使用接受用户名/密码输入的自定义操作来实现解决方案,但我的要求特别要求显示本机浏览器窗口提示。
该网站正在使用IIS Express,并且已经设置了Windows身份验证,并且每个方面都可以满足我的需求。除了" true"上述授权。浏览器必须是IE9。目前在Windows 10上运行。
答案 0 :(得分:0)
没有。您目前正在使用Windows身份验证,这就是它的工作原理。无需登录,因为用户已登录Windows,这就是重点。
要做你想做的事,你需要使用像Identity这样的个人身份验证库。这将为您提供登录功能。但是,这并不适用于开箱即用的AD,但您可以自己添加。换句话说,不是使用Identity功能通过用户名和密码查找用户进行身份验证,而是通过LDAP连接到AD,并验证其中的凭据。您还需要使用LDAP连接将AD中的用户组添加到其在Identity中的角色。然后,您可以正常使用Authorize
属性。
长短,如果你想让用户真正以任何AD用户身份登录,那么你几乎可以自己动手。没有内置功能。如果不是完全容易的话,相对直截了当地为自己设置一些东西,但同样,那就是你。