asp.net mvc 并检查用户是否登录

2023-12-23

我是 ASP.NET MVC 新手,我需要检查用户是否在我的应用程序中登录,因此我将以下代码放在我的 global.asax 中

    void Application_PreRequestHandlerExecute(object sender, EventArgs e)
    {
        HttpApplication application = (HttpApplication)sender;
        HttpContext context = application.Context;

        string filePath= context.Request.FilePath;
        string fileExtention = VirtualPathUtility.GetExtension(filePath);

        // to skip request for static content like (.css or .js)
        if (fileExtention == "")
        {                
            if (filePath.ToLower() != "/account/login")
            {
                var user = (Utilisateur)context.Session["USER"];
                if (user == null)
                    context.Response.Redirect(@"~/account/login");
            }                
        } 
    }

我拦截每个传入的请求来进行检查我想知道是否还有其他方法可以完成此类工作 并提前致谢。


有必要这样做吗?您应该检查是否可以使用 ASP.NET 身份验证、授权和成员资格提供程序。 (当您创建新的 ASP.NET MVC 3 应用程序时[当您选中“Internet 应用程序”时]),它们会自动生成。

然后,您可以对控制器和操作使用注释:(伪代码):
这仅允许授权用户访问控制器(您甚至可以指定允许哪些用户或哪些角色):[Authorize(Roles = "Administrators")]

[Authorize]
controller{.....}

为了检查用户是否登录,已经有 User 属性和 Identity 属性。
此代码检查用户是否经过身份验证(登录):

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

asp.net mvc 并检查用户是否登录 的相关文章

随机推荐

  • 如何为 f.select 表单字段设置空白值

    我使用以下内容允许我的用户在他们的个人资料中选择他们的性别 如果没有任何内容传递到 user sex 列 我将如何创建列表默认的空白值 我只是将男性或女性作为字符串传递 目的是我想要一个空白值 以便验证可以确保他们知道必须选择它 有两种可能
  • MySQL 获取两个用户之间的对话

    我有一个名为 private messages 的 SQL 表 其中包含字段 id from to message stamp 标记字段对应于消息的日期 那么我需要什么查询 1 获取两个用户之间的对话 按日期排序 我已经尝试过查询 SELE
  • Hive 中的 Presto UNNEST 函数相当于什么

    急板有一个UNNEST函数分解由数组组成的列 Hive 有类似的吗 请参阅文档UNNEST急速功能here https prestodb io docs current sql select html Use lateral view ou
  • 使用 DTO 时,Automapper 和 Nhibernate 反映正在更新的域对象中 DTO 子集合的更改

    我对这个设计不是很熟悉 但我希望得到一些指导 我有一个后端服务 它将 DTO 发送到 WPF 智能客户端 在 WPF 智能客户端上 用户将更改 删除和修改项目 然后将更改发送回 客户端 gt 服务器 举个例子 目前我正在处理客户详细信息表单
  • 无法让 dokka 在 gradle/android 项目上生成 kotlin 文档

    我正在关注 gradle 插件部分https github com Kotlin dokka https github com Kotlin dokka 我还尝试了 dokka gradle example 中的示例https github
  • Spring结果集提取器

    如何使用ResultSetExtractor从数据库检索数据 这里我使用oracle 10g作为后端 如果从员工表中搜索员工详细信息 哪个更好ResultSetExtractor or RowMapper 从 java 8 开始 还可以使用
  • 无继承的 OOP 重用:这在“现实世界”中有多实用?

    本文描述了一种我觉得很有趣的 OOP 方法 如果对象存在为 封装和通信 通过消息 如果代码重用了怎么办 与继承无关 但是 使用组合 委托 甚至 老式的辅助对象或任何 程序员认为合适的技术 本体并没有消失 但它 与实现分离 最令我震惊的是无需
  • 如何使用 Spring 的 JDBCTemplate 有效执行 IN() SQL 查询?

    我想知道是否有一种更优雅的方法来使用 Spring 的 JDBCTemplate 进行 IN 查询 目前我正在做类似的事情 StringBuilder jobTypeInClauseBuilder new StringBuilder for
  • JavaFX 没有 TouchEvents

    在我的 Windows Surface Go 2 平板电脑上 我无法检索任何 多点触控 触摸事件 我尝试了几个 Java FX 版本 即使使用 JavaFX 17 及更早版本 也不会生成 TouchEvents 事件 仅生成鼠标事件 是否需
  • 每10秒自我更新一次的小部件Handler.postDelayed问题

    我正在尝试使工作成为 Android 小部件中的自我更新功能 就像每 10 秒更改它的两个 TextView 一样简单 理想的解决方案是使其类似于精灵小部件 新闻和天气 到目前为止 它工作正常 它通过 Handler postDelayed
  • Pycharm 设置 Mysql 数据库驱动程序

    我正在尝试在 pycharm 中设置 mysql 数据库连接 我已经创建了架构并且它可以在 django 等中工作 我试图将数据源直接导入到 pycharm 但出现以下错误 Connection to Exception in thread
  • 为什么 smartcast 不能处理这种情况?

    我有一些与此结构类似的代码 private fun test Double val a Double 15 0 val b Double 20 0 return if a null b null 0 else if a null b nul
  • 我的主函数反汇编中所有这些奇怪的汇编指令是什么?

    所以我有这个主要功能 它会产生很多奇怪的指令 我使用的是 Visual Studio 2019 并且处于调试模式 因此禁用了优化 这些指令是做什么的 int main 00D340E0 push ebp 00D340E1 mov ebp e
  • 使用自定义 Comparer 的 OrderBy 的 Linq 语法

    对于带有自定义排序比较器的任何给定 Linq 表达式 有两种格式 Format 1 var query source Select x gt new x someProperty x otherProperty OrderBy x gt x
  • jQuery fadeIn '慢' 立即出现

    我试图做到这一点 以便当您单击链接时 它会删除一个 div 带有一些段落和文本 并插入另一个 div 带有一些段落和一些文本 我正在使用 jQuery 来淡入和淡出它们 当您单击链接时 原始 div 会淡出 然后我有一个 switch ca
  • 如何从 GooglePicker 上选定的文件中获取 blob

    我正在使用 GooglePicker 和 React 我得到的结果是一个对象数组 id 1 m serviceId docs mimeType image jpeg name name jpg description type photo
  • 带有纹理背景的 CSS 之字形边框

    我一直在研究带有锯齿形边框的标题 一种方法是使用图像来制作之字形效果 1 有没有办法在CSS中创建一个实用的跨浏览器之字形边框而不使用图像 我还尝试在该标题上放置一个延伸到之字形的纹理背景 但是 标题的垂直尺寸可能会改变 并且我无法将标题实
  • 单击按钮时滚动视图向上和向下滚动[重复]

    这个问题在这里已经有答案了 可能的重复 以编程方式滚动 UIScrollView https stackoverflow com questions 2234875 programmatically scroll a uiscrollvie
  • Mac Swampy(Python学习模块)安装

    我想教我的孩子们编程 并且正在使用 Downey 的 Think Python 这本书很棒 除了他安装 Swampy 一个类似海龟的学习模块时 我花了几个小时试图弄清楚 现在我需要帮助 任何人都可以提供有关如何安装 Swampy 的清晰 分
  • asp.net mvc 并检查用户是否登录

    我是 ASP NET MVC 新手 我需要检查用户是否在我的应用程序中登录 因此我将以下代码放在我的 global asax 中 void Application PreRequestHandlerExecute object sender