在ASP.NET MVC 5身份登录框架弹出

问题描述 投票:0回答:1

我有一个MVC应用程序5使用OWIN中间件身份框架。现在它的正常工作和未经授权的用户发送到帐户/登录页面。该应用程序使用本地登录(不是Facebook /谷歌等)。

我需要这样它会打开一个模式弹出要求用户名/密码,而不是重定向到一个页面来改变它。我会怎么做呢?

更新:感谢@SteveGreene和@克里斯。让我澄清一下多一点点。是的,我知道我可以很容易地用一个模式弹出当用户明确希望登录。当他们点击一个链接到一个控制器/动作需要授权的,而不是应用程序对它们进行重定向到登录页面(或控制器页)我要的是,它应该显示一个弹出。一旦他们登陆页面应该被重定向到他们所要求的控制器/动作。如果我把克里斯的建议,并在控制器内检查,我将无法使用[授权]属性正确吗?有没有更好的办法,然后就在所有的动作手动检查认证?

asp.net-mvc-5 asp.net-identity owin
1个回答
0
投票

真的,这不是不仅仅是一个标准的登录表单有什么不同。唯一的区别是,形式是隐藏最初一个模式弹出,布局的一部分,或者以其他方式在每一页上之内,您有任何登录链接将仅仅激活这个弹出,而不是导航到一个新的URL。登录后,你会依然想做一个重定向即使是回到同一页面,只是让MVC可以在HttpContext的用户主体实际上填补。

但是,你仍然会需要一个标准的登录表单重定向当用户浏览到需要授权一个页面。首先,你不能动态设置URL MVC将定位未经授权的用户。它被设置在web.config中,这就是你得到的。其次,即使你能,你不能同时保护页面并显示它,即使你打算有在它上面显示模式登录表单。你就必须让所有的页面,此时您可以决定用户是否页面上验证过了,如果需要显示的登录表单模式匿名访问。然而,在这一点上,聪明的用户可能只是挖成浏览器的开发者工具,只是删除模式,并继续与页面的工作。

长与短,你可以有当用户明确选择登录一个模式登录表单,但如果他们打,需要授权的网页,你仍然需要一个标准的形式给他们重定向到。

© www.soinside.com 2019 - 2024. All rights reserved.