我正在开发一个在一台服务器上运行的ASP.NET MVC应用程序。服务器具有用户帐户。
用户帐户不允许RDP到服务器,但我想给他们一个通过我的网站更改密码的方法。
该网站有一个匿名用户可以看到的主页,还有一个帐户页面,用户必须使用他们的Windows凭据登录并查看,并且有一个忘记密码按钮。如果用户忘记密码,我可以重置密码。
用户通过互联网访问我的网站。
Windows身份验证是否允许匿名访问某些页面?表单身份验证是否能够读取Windows帐户凭据?哪种方式更容易实现我的要求?
答案 0 :(得分:1)
一般情况下,extensive information on ASP.NET MVC authentication types可用。
Windows身份验证的问题是,它非常有限。您无法真正拥有Windows身份验证的“忘记密码”功能,它基本上是只读访问权限,但另一方面,它是Windows Intranet站点最简单/最快的解决方案。这是设计用户应该通过域功能更改密码。匿名访问很简单,例如,只需使用[AllowAnonymous]
属性装饰单个方法(“Action”)或整个Controller。
您最灵活的选择可能是使用 ADFS 。这两个世界都是最好的。您可以将Windows身份验证的内部用户,表单身份验证的外部用户(包含用户名/密码,包括“忘记密码”功能等)和匿名访问组合为described here。但这显然不是最简单的方法。