如何在 ASP.NET MVC 3 Intranet 应用程序中重新验证用户身份?

2024-04-10

该应用程序已经使用 Windows 集成安全性,而不是 Forms。我想要完成的是所谓的“逐步”身份验证,或针对以下情况的“强制重新身份验证”:

  1. 用户正在浏览网站做一些常见的、琐碎的事情
  2. 突然,用户必须执行敏感操作,例如授权 资源分配或确认汽车贷款或类似的东西
  3. 在用户被重定向到之前,系统会提示他输入凭据 敏感页面,其方式类似于 SharePoint 的“登录身份” 不同的用户”
  4. 当且仅当输入的凭据是 与当前登录用户的应用程序相同 继续前往敏感区域。

这可以防止以下两个问题:

  1. 用户去开会或喝咖啡时忘记锁定 工作站和同事使用会话来访问敏感信息 区域
  2. 用户输入他或她老板的凭据(因为,让我们 假设他从老板的肩膀上偷看)以进入敏感区域。

我知道,有些人会认为这是“偏执”,但也有些人会说这是常识,应该在某个地方的框架中构建(jQuery 或 .NET)


让表单发送凭据以及执行操作的请求,即某些操作要求您提供用户名/密码。使用PrincipalContext验证凭证 http://msdn.microsoft.com/en-us/library/bb154889.aspx方法以确保输入了正确的凭据并检查提供的用户名是否与当前用户名相匹配User.Identity object.

public ActionResult SensitiveAction( SensitiveModel model, string username, string password )
{
    using (var context = new PrincipalContext(ContextType.Domain))
    {
         if (!string.Equals(this.User.Identity.Name,username,StringComparison.OrdinalIgnoreCase)
             || !context.ValidateCredentials(username,password))
         {
              return View("PermissionDenied");
         }
    }

    ...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 ASP.NET MVC 3 Intranet 应用程序中重新验证用户身份? 的相关文章

  • Nuget 包:使用不同的 MVC 版本(如果可用)

    我有一个开源 nuget 包属性路由 https github com mccalltd AttributeRouting 目前打包的程序集引用了 System Web Mvc 版本 2 我想在 MVC 3 4 项目中引用 MVC 3 4
  • ASPNET MVC - 使用具有相同签名的新助手覆盖 Html.TextBoxFor(model.property)?

    我想用我自己的助手重写 Html TextBoxFor 该助手具有完全相同的签名 当然 但名称空间不同 这是否可能 如果可以 如何实现 原因是我在现有的应用程序中有 100 多个视图 并且我想更改 TextBoxFor 的行为 以便在属性具
  • 如何在 MVC4 的 UserProfile 中创建自定义附加字段

    我遇到了新的 ASP MVC 4 功能 它附带了新的成员资格数据库模式和新的初始化 在 mvc 3 和旧版本中 开发人员能够使用 web config 中的规范创建自定义用户配置文件字段 但现在我面临默认 mvc 4 项目中过滤器命名空间中
  • 使用 R.Net 版本 1.5.5 创建 REngine 实例

    我正在尝试创建一个 Hello World 示例R Language using R Net版本1 5 5 从 NuGet 加载 不幸的是 我见过的在线示例都不起作用 这就是我所做的 已安装Microsoft R Open 3 2 4 增强
  • 从 ASP.NET Web API 返回 HTML

    如何从 ASP NET MVC Web API 控制器返回 HTML 我尝试了下面的代码 但由于未定义 Response Write 而出现编译错误 public class MyController ApiController HttpP
  • MVC 下拉列表未映射到模型

    我正在尝试使用 EF codefirst 在 MVC 3 中开发应用程序 当我使用 int 属性和约定来设置外键关系时 例如 public class Patient public int ConsultantId get set 然后 我
  • ASP.Net MVC 4 通用主要难点

    我正在开发一个ASP NET MVC 4Web应用程序 以前我的 MVC 应用程序是使用MVC 3和这个新的MVC 4我刚刚复制 重复使用了我的应用程序认证和授权码从以前的应用程序 当用户登录我的网站时 我会执行以下操作 账户控制器 pub
  • ASP.NET MVC,Bootstrap Tables,获取每列的值

    在 ASP NET MVC 中 我有一个操作 它接受有关行和列的用户输入 然后导航到根据用户输入生成所需行数和列数的操作 如下所示 Views div class container style width 1px div class ro
  • 用户注销速度非常快

    我正在使用 ASP NET 身份成员身份 这是 Startup Auth cs 代码 app CreatePerOwinContext EFDbContext Create app CreatePerOwinContext
  • Owin 声明 - 添加多个 ClaimTypes.Role

    我有一个应用程序 可以在其中为用户分配以下角色 超级管理员 Admin User 一个用户可能分配了两个或多个角色 例如 超级管理员和用户 我的应用程序使用声明 因此我也想通过声明来验证用户角色 喜欢 Authorize Roles Adm
  • 如何使自定义错误页面在 ASP.NET MVC 4 中工作

    我想要显示 500 404 和 403 的自定义错误页面 这是我所做的 在 web config 中启用自定义错误 如下所示
  • 为什么自定义类型变量不保存值MVC

    我正在尝试使用 MVC 5 构建一个网站 我有一个包含 3 个变量的控制器类 public class WorkerController Controller public ViewModel viewModel new ViewModel
  • ASP.NET MVC 中 ModelState.AddModelError 中的关键参数有什么意义?

    我在我的控制器中添加了验证检查来修改ModelState如果验证失败 例如 private bool ValidateMoney string raw string name decimal min decimal max try var
  • ASP.NET MVC 和 Expression XAML - 如何集成?

    一些背景 ASP net MVC 主要是构建和开发 ASP NET 应用程序方式的范式转变 从 代码隐藏 类型的心态转变为更像标准 MVC Ruby on Rails 的心态 我赞扬它作为一种简化工具来简化单元测试和代码分离 尽管 html
  • Visual Studio 智能感知搞砸了

    所以我是 MVC4 和 C 的新手 我已经设计这个网站大约两周了 智能感知没有任何问题 两天来 Visual studio 告诉我 Viewbag 和其他 命令不是我的项目的一部分 我可能错过了一些东西 或者它告诉我 Viewbag 在当前
  • 使用 AJAX 加载部分视图不起作用

    请原谅我 我是 MVC 和 AJAX 的新手 目前我只是提交一个表单 我想使用表单中的数据使用 ajax 更新部分视图中的表 My UserInfo部分视图如下所示 model IEnumerable
  • 构建 ViewModel 的合适粒度是多少?

    我正在开发一个新项目 在看到以前项目的一些困难后 这些项目没有提供足够的视图与模型的分离 特别是使用 MVC 模型和视图开始有点相互渗透 我想使用 MVVM 我了解基本概念 并且很高兴开始使用它 然而 有一件事我有点忽略 ViewModel
  • 临时目录中自动生成的“App_Web********.cs”文件导致构建错误

    因此 这已经困扰我一段时间了 但有时在我的 Visual Studio 2013 ASP NET MVC4 项目中 我会删除未使用的 ViewModel 类 并在下一次编译时收到如下错误 对于名为 我刚刚删除的 MostRecentMemb
  • 使用实体框架重叠约会

    我将 asp net mvc 与实体框架一起使用 我有一个包含 startat 字段 endat 字段和 roomid 字段 称为 SpaceConfigurationId 的约会列表 并且希望查找给定房间已重复预订的约会列表 可以假设 e
  • IsReusable 属性中的上下文切换

    是否可重用属性 下面是我的理解IsReusable财产 如果处理程序返回静态内容 将值设置为 true 是安全的 但如果线程返回动态内容 为了使其线程安全 IsReusable应设置为 false 在这种情况下 可能会发生上下文切换 这可能

随机推荐

  • 放弃所有本地更改并返回到最后拉取的版本

    我如何在 git 中放弃所有本地更改 提交并返回到最后拉取的版本 命令必须位于一个字符串 字段 中 You can reset https git scm com book en v2 Git Tools Reset Demystified
  • 在 Spring Boot 中转义 Yaml 中的 Map 键中的点

    我有以下 yml 配置 foo bar com a b baz com a c 通过以下类 Spring 尝试使用键 bar 和 baz 注入映射 将点视为分隔符 public class JavaBean private Map
  • 如何在 log4j2 中生成标题行

    在 log4j 中 我们有时会创建第二个记录器并向其输出 CSV 数据 作为应用程序的指标监视 与我们用于调试等的普通日志相反 这些数据很容易导入和绘制图表 在旧的 log4j 中 我们通过子类化 PatternLayout 覆盖 head
  • 如何找到“无法加载‘xxx.dll’导入的过程”的来源。例外?

    过去一周我一直在追求这个例外 情况是 我有一个用 C 编写并在 Visual Studio 2010 中构建的应用程序 该应用程序包含一个 DLL 它是非托管代码库的包装器 非托管代码是用 C 编写的 并在 Visual Studio 20
  • 如何将系统变量值传递给执行 SQL 任务中的 SQL 语句?

    SSIS 2008 非常简单的任务 我想检索系统变量并在 SQL INSERT 中使用它 我想检索的值System MachineName并在插入语句中使用它 使用声明INSERT INTO MYLOG COL1 SELECT System
  • C++ - 在文本文件中查找和替换(标准系统库)

    我正在寻找一些建议 我的情况 应用程序适用于文本本地文件 文件中的某处有这样的标签 correct TEXT 不幸的是 之间可以有无限的空格correct and TEXT 获得的文本正在功能测试中 可能会被替换 更改必须存储在文件中 co
  • 更改列表视图中文本视图的可见性

    我有一个列表视图 它由来自单独布局文件的两个文本视图组成 我用一个BaseAdapter从 JSON 文件构建列表 我希望第一个文本视图 标题 可单击 如果单击它会显示第二个文本视图 文本 如果再次单击它会隐藏它 当我使用onClick a
  • kibana server.basePath 结果为 404

    我在 RHEL 7 2 上运行 kibana 4 4 1 当 kibana yml 文件不包含设置时一切正常server basePath Kibana 成功启动并吐出消息 info listening Server running at
  • 在哪里可以找到 PHP 的错误日志文件?

    在哪里可以找到错误日志文件 我需要检查它们以解决安装后显示的内部服务器错误suPHP https wiki archlinux org title SuPHP 您可以使用lsof https en wikipedia org wiki Ls
  • Asterisk AGI:如何获取或设置全局变量的值?

    我使用 Asterisk 1 8 和 PHP 来编写 AGI 脚本 EDIT 我正在努力从 AGI PHP 脚本中设置和获取全局变量的值 我可以设置通道变量 但不能设置全局变量 使用 PHPAGI 库 Tried Set varname v
  • Puppeteer 在非无头模式下打开一个空选项卡

    运行 puppeteer npm 的最新版本 0 13 0 并将参数传递给 puppeteer launch headless false chrome 以空页面作为第一个选项卡打开 并从第二个选项卡中的脚本打开实际页面 const pag
  • 尝试调整 2fs EB 卷大小失败 [已关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一个 200GB 的 EBS 卷 正在尝试增加可用空间 我按照以下说明进行操作 http www hellersoftware com
  • Swift:通过 Twitter 分享文本

    所以基本上我正在制作一个事件应用程序 一切都很顺利 只是将活动分享到了 Twitter 我已经在互联网上搜索过 但我得到的只是使用我不想要的 Twitter 的本机应用程序 我想使用浏览器发推文 我已经实现了这个方法用于FB共享 任何想法都
  • terraform 资源创建 - this 关键字

    我在几个例子中发现了一种模式terraform代码在Github resource aws vpc this 我想知道关键字如何this与命名资源相比 提供了特殊的优势 我找不到哈希公司文档关于this关键词 https github co
  • 正则表达式:仅匹配一次

    我有一个包含多个 IP 地址和一些随机内容的字符串 例如像这样的 21 Jun 2018 01 15 38 0000 188 79 169 152 157 52 69 50 443 GET 157 52 69 30 157 52 69 10
  • C++:删除打印机队列

    我正在尝试从打印机中删除队列中的所有文件 我发现这看起来很简单 我尝试使用下面的代码删除队列 它可以编译 但 SetPrinter 返回 false 我收到的错误消息是 5 我尝试使用该方法将其解码为 正常 错误消息从这个问题 https
  • 是什么导致 Safari 中的音频播放缓慢/延迟?

    var audio new Audio data audio wav base64 UklGRoABAABXQVZFZm10IBAAAAABAAEAiBUAAIgVAAABAAgAZGF0YVwBAACHlqa1xNLg7vv Tk1LSk
  • 按 iframe 内的 Youtube 订阅表单按钮

    我正在搜索如何从 Youtube 订阅表单按下订阅按钮 但我没有找到任何可以帮助我的东西 我是 JS 新手 所以我希望你能帮助我 用于按下订阅按钮here http www youtube com subscribe widget p aa
  • 如何在 JavaScript 中模拟 target="_blank"

    当用户单击链接时 我需要更新数据库中的字段 然后在新窗口中打开请求的链接 更新没问题 但我不知道如何打开新窗口而不要求他们单击另一个超链接 a href http www mydomain com ReportID 1 target bla
  • 如何在 ASP.NET MVC 3 Intranet 应用程序中重新验证用户身份?

    该应用程序已经使用 Windows 集成安全性 而不是 Forms 我想要完成的是所谓的 逐步 身份验证 或针对以下情况的 强制重新身份验证 用户正在浏览网站做一些常见的 琐碎的事情 突然 用户必须执行敏感操作 例如授权 资源分配或确认汽车