Asp.net mvc 3 要求对某些操作进行重新身份验证
对于某些操作,如更改电子邮件设置或管理员活动,我希望用户在操作完成之前重新验证。在ASP.NET MVC 3中有这样做的好模式吗?Descpription 例如,您可以使用Asp.net mvc 3 要求对某些操作进行重新身份验证,asp.net-mvc-3,security,Asp.net Mvc 3,Security,对于某些操作,如更改电子邮件设置或管理员活动,我希望用户在操作完成之前重新验证。在ASP.NET MVC 3中有这样做的好模式吗?Descpription 例如,您可以使用用户名、密码和要更改的字段(电子邮件)创建操作方法。然后在数据的[HttpPost]中验证此数据。如果授权成功,则对其进行更改,如果未成功,则将错误添加到ModelState 为此,请使用ViewModel 样品 如果您想动态拦截并重新验证已经通过身份验证的人,您可能还可以使用一个特殊的cookie来处理这个问题。需要重新验证
用户名
、密码
和要更改的字段(电子邮件
)创建操作方法。然后在数据的[HttpPost]
中验证此数据。如果授权成功,则对其进行更改,如果未成功,则将错误添加到ModelState
为此,请使用ViewModel
样品
如果您想动态拦截并重新验证已经通过身份验证的人,您可能还可以使用一个特殊的cookie来处理这个问题。需要重新验证的操作可以使用自定义筛选器进行修饰,该筛选器覆盖授权以检查cookie,如果找不到,则重定向以获取用户名和密码。模式,无代码:
User clicks link to uber-protected action.
Filter on action looks for cookie and does not find it, redirects to sign in.
User signs in, and you write a special cookie
(different from the forms auth cookie),
then redirect back to original action.
Filter on action looks for cookie and finds it authorizing user.
cookie的生存期至少必须一直到uber保护操作的http post。您必须决定何时删除它。例如,用户为一个受uber保护的操作重新身份验证后,是否希望他们在同一浏览器会话中为第二个受uber保护的操作重新身份验证
User clicks link to uber-protected action.
Filter on action looks for cookie and does not find it, redirects to sign in.
User signs in, and you write a special cookie
(different from the forms auth cookie),
then redirect back to original action.
Filter on action looks for cookie and finds it authorizing user.