asp.net-mvc – 具有Windows身份验证的MVC3 Web应用程序中的特权提升

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 具有Windows身份验证的MVC3 Web应用程序中的特权提升前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要在MVC3 Web应用程序中实现用户权限提升,用于表单和 Windows身份验证,但这个问题对于Windows auth至关重要.这是为了更高的特权用户向较低特权用户提供帮助,例如当文书用户执行任务并要求管理员用户在文书用户可以继续之前执行任务时,管理员用户应该能够将同一会话提升到其特权级别,执行管理任务并恢复较低权限到会议.我没有看到一个办法,没有文书用户登录,管理员用户登录,因为我们想要在文书用户的桌面上实现这一点.也许用户切换比整个新的会话更整洁,但我非常喜欢Windows验证的Web应用程序的“运行”等效.

这是否可能,如果是这样,我该如何实现呢?我不知道哪里甚至开始寻找.

解决方法

你可以在你的网站上放置一个锚点:
@Html.ActionLink("elevate to admin","SwitchToAdmin","Home")

然后有一个控制器操作,将允许输入管理员凭据:

public ActionResult SwitchToAdmin()
{
    // TODO: Adjust the role name that your administrators will have
    if (!User.IsInRole(@"DOMAIN\Administrators"))
    {
        // The user is not currently an admin => popup a logon Box
        // so that the administrator could authenticate himself
        return new HttpUnauthorizedResult();
    }
    else
    {
        // After inputting the correct username and password for the
        // admin,we can now redirect to the home action and start performing
        // the admin tasks
        return RedirectToAction("index","home");
    }
}

回归过程将是倒数.你可以有一个链接,如果用户是一个管理员,一般用户可以输入用户名和密码,它将会调用一个控制器动作,该操作会抛出401.

猜你在找的asp.Net相关文章