gpt4 book ai didi

asp.net-mvc - 在 MVC 应用程序中重新验证用户以进行操作

转载 作者:行者123 更新时间:2023-12-04 13:00:20 25 4
gpt4 key购买 nike

在 MVC 中执行操作之前,如何强制用户重新进行身份验证?

我们正在使用 Windows 身份验证。我们希望确保用户执行某些操作(并在用户忘记锁定其工作站时防止其他用户执行这些操作)。

理想情况下,我只能编写一个扩展 Authorize 的属性。 :

namespace AuthTest.Controllers
{
[Authorize(Roles="MyApp")]
public class HomeController : Controller
{
public ActionResult Index()
{
// A regular action
return View();
}

[ReAuthenticate]
public ActionResult CriticalAction()
{
// Do something important
return View();
}
}
}

看来我可以通过自定义 ReAuthenticate 强制用户重新输入他们的凭据。属性问题 HTTP 401 AuthorizeCore 中的响应方法。然而,这需要一些技巧,因为 Html.ActionLink正在发送两个请求:
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
bool ok = base.AuthorizeCore(httpContext);
if (!ok) return false;

if (httpContext.Session["ReAuthCnt"] == null)
{
httpContext.Session["ReAuthCnt"] = 1;
return false;
}
else if ((int) httpContext.Session["ReAuthCnt"] < 2)
{
httpContext.Session["ReAuthCnt"] = (int)httpContext.Session["ReAuthCnt"] + 1;
return false;
}
else
{
httpContext.Session["ReAuthCnt"] = 0;
return true;
}
}

有没有更好的方法来完成重新授权?

最佳答案

如果用户正在执行 POST,您能否在该表单中添加用户名和密码字段,然后在 Controller 中或使用 ActionFilter 验证针对 Active Directory 的凭据?

关于asp.net-mvc - 在 MVC 应用程序中重新验证用户以进行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18994267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com