如何注销会话 MVC Razor Visual Studio

2024-04-22

我正在尝试从 MVC Razor 中的会话注销,这是我目前 MainController 中的内容:

[HttpPost]
public ActionResult Login(Users user)
{
    if (ModelState.IsValid)
    {
        if (ValidateUser(user.Email, user.Password))
        {

            FormsAuthentication.SetAuthCookie(user.Email, false);
            return RedirectToAction("Index", "Members");
        }
        else
        {
            ModelState.AddModelError("", "");
        }
    }
    return View();
}

private bool ValidateUser(string Email, string Password)
{

    bool isValid = false;

    using (var db = new ShareRideDBEntities())
    {
        var User = db.tblProfiles.FirstOrDefault(u => u.PROF_Email == Email);
        var ut = db.tblProfilesTypes.FirstOrDefault(t => t.TPE_ID == User.PROF_UserType);

        if (User != null)
        {
            if (User.PROF_Password == Password)
            {
                Session["UserID"] = User.PROF_UserID;
                Session["Name"] = User.PROF_FirstName;
                Session["Email"] = User.PROF_Email;
                Session["FullName"] = User.PROF_FirstName + " " + User.PROF_LastName;

                isValid = true;
            }
        }

    }

    return isValid;
}

这样我就可以登录用户并将其重定向到他的 UserCP 或用户控制面板。

我这样做是为了如果用户未登录,他们将无法使用我的 MembersController 中的以下代码访问会员区域:

public ActionResult UserCP()
{
    if (Session["UserID"] == null)
    {
        return RedirectToAction("Index", "Main");
    }
    else
    {
        return View();
    }

}

public ActionResult LogOut()
{
    FormsAuthentication.SignOut();
    return RedirectToAction("index", "main");
}

如果用户尚未登录,它会将用户重定向回主索引页面,但是当我测试注销按钮时,它会正常重定向我,但我仍然能够返回到用户控制面板,这就是我所做的不希望它发生。

当然我已经添加了

using System.Web.Security;

使用 FormsAuthentication.SignOut();

如果有人可以解释这一点,请提前致谢。


After FormsAuthentication.SignOut();你需要打电话Session.Abandon() http://msdn.microsoft.com/en-us/library/system.web.sessionstate.httpsessionstate.abandon(v=vs.110).aspx这将清除当前会话并根据下一个请求重新创建新会话

public ActionResult LogOut()
{
    FormsAuthentication.SignOut();
    Session.Abandon(); // it will clear the session at the end of request
    return RedirectToAction("index", "main");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何注销会话 MVC Razor Visual Studio 的相关文章

  • 如何将 std::string& 转换为 C# 引用字符串

    我正在尝试将 C 函数转换为std string参考C 我的 API 如下所示 void GetStringDemo std string str 理想情况下 我希望在 C 中看到类似的东西 void GetStringDemoWrap r
  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • std::vector 与 std::stack

    有什么区别std vector and std stack 显然 向量可以删除集合中的项目 尽管比列表慢得多 而堆栈被构建为仅后进先出的集合 然而 堆栈对于最终物品操作是否更快 它是链表还是动态重新分配的数组 我找不到关于堆栈的太多信息 但
  • 如何在 C++ 中标记字符串?

    Java有一个方便的分割方法 String str The quick brown fox String results str split 在 C 中是否有一种简单的方法可以做到这一点 The 增强分词器 http www boost o
  • 对类 static constexpr 结构的未定义引用,g++ 与 clang

    这是我的代码 a cp p struct int2 int x y struct Foo static constexpr int bar1 1 static constexpr int2 bar2 1 2 int foo1 return
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • ASP.NET MVC,控制器可以改变提交的值吗?

    ASP NET MVC 中是否允许更改提交的值 HttpPost public ActionResult Create Person toCreate toCreate Lastname toCreate Lastname A return
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • 如何获取 EF 中与组合(键/值)列表匹配的记录?

    我有一个数据库表 其中包含每个用户 年份组合的记录 如何使用 EF 和用户 ID 年份组合列表从数据库获取数据 组合示例 UserId Year 1 2015 1 2016 1 2018 12 2016 12 2019 3 2015 91
  • 覆盖 jQuery 验证 MVC4 中的默认设置

    要覆盖查询验证插件 请在文件 http docs jquery com Plugins Validation validate toptions 推荐的方式是 selector validate invalidHandler functio
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • 如何在当前 Visual Studio 主机内的 Visual Studio 扩展中调试使用 Roslyn 编译的代码?

    我有一个 Visual Studio 扩展 它使用 Roslyn 获取当前打开的解决方案中的项目 编译它并从中运行方法 程序员可以修改该项目 我已从当前 VisualStudioWorkspace 成功编译了 Visual Studio 扩
  • 复制目录下所有文件

    如何将一个目录中的所有内容复制到另一个目录而不循环遍历每个文件 你不能 两者都不Directory http msdn microsoft com en us library system io directory aspx nor Dir
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat

随机推荐

  • 让 COUNTIFS 忽略所有空白单元格(= 空单元格和包含“”的单元格)

    我想得到一个公式COUNTIFS like COUNTIF A1 A3 lt gt 这样当A1 2 A2 A3 空 返回 1 Notes A2包含一个空字符串 作为公式的结果 A3 is a 空白单元格 其中没有公式 发布的公式返回 2 我
  • 如何从子类向父类中定义的变量传递值?

    我的主页有一个工具栏 其中包含三个按钮 主页 通知和登录 我希望仅在用户登录时显示通知按钮 这是我的代码 Parent class interface Toolbar UIViewController UIToolbar toolBar U
  • 在哪里可以找到有关重构的资源? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 重构是改进现有系统设计而不改变其行为的过程 除了马丁 福勒的开创性著作 重构 改进现有代码的设计 ht
  • ASP.NET Webforms 应用程序有时无法加载,直到 cookie 被删除

    我正在我的 Windows 7 PC 上开发 ASP NET 4 Webforms 应用程序 我正在运行VS2010和IIS7 5 我有一个奇怪的问题 在加载几个页面 从 1 到 20 左右 后 我没有从 IIS 得到任何响应 我什至无法在
  • 从 Java 应用程序发送陷阱

    从 Java 应用程序发送陷阱的最快捷 最简单的方法是什么 提前致谢 I use SNMP4J http www snmp4j org 为了这 This http www snmp4j org doc org snmp4j Snmp htm
  • 如何在 Angular 2 中使用量角器?

    我将 Protractor 与 Angular 1 x 一起使用 我想逐步迁移到 Angular 2 0 但我没有看到 Protractor在文档中 https angular io docs ts latest testing 从 Ang
  • 警告:“声明似乎没有效果”[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 PyCharm 以黄色突出显示我的代码并发出警告 悬停时 它说 声明似乎没有效果 有人可以解释一下这是什么意思吗 您需要一个等号 赋值给pu
  • 使用 istream (std cin):防止 Windows 上的“[输入] 未被识别为...”

    我有一个具有命令行功能的 Qt gui 应用程序 为了使这项工作正常进行 我将其添加到了顶部main 功能 ifdef WIN32 if AttachConsole ATTACH PARENT PROCESS freopen CONOUT
  • Flutter - firebase FCM 消息根本不适用于 Testflight 版本构建

    Preface 我的应用程序基于 Flutter 但需要本机代码实现才能使 FCM 消息正常工作 请参阅下文了解更多详细信息 GitHub问题 154 https github com ConnectyCube connectycube f
  • 如何实现 JSR 规范

    我正在考虑实现一两个 JSR API 我还没有阅读整个规范 计划是在编写实现代码时阅读它们 但我对它们非常熟悉 我读到 JSR 流程包括实现测试兼容性工具包 TCK 以测试所述 JSR 实现 在我开始编写一堆单元测试来验证我的实现的正确性
  • 视频swf的php正则表达式

    我想从对象 嵌入 html 源获取视频 url 我读到我可以使用正则表达式来获取它 但我和正则表达式不是朋友 这就是我所拥有的
  • 二进制串口读取c中丢失的字节

    我正在将二进制数据从 arduino 发送到运行此代码的串行端口 在十六进制模式下使用cutecom可以清楚地读取我对该串行端口的期望 如下所示 00000000 24 04 85 ab 47 43 04 04 24 04 85 ab 47
  • E/未知:React:本机调用中出现异常

    我通过模拟器运行 Android 应用程序 但出现了如下错误 不知道如何修复它 有知道解决办法的人吗 请帮忙 thanks E unknown React Exception in native call java lang Runtime
  • PHP 中的 if (\false) (是的,带反斜杠)是什么意思?

    今天早上 我接到通知 有一个新的Twig 扩展 https github com twigphp Twig extensions发布可用 耶 在将其集成到之前树枝小提琴 https twigfiddle com 我想看changes htt
  • keycloak 令牌自省总是失败并显示 {"active":false}

    我有点急于让这件钥匙斗篷发挥作用 我可以进行身份 验证 但由于某种原因 我的令牌内省总是失败 例如 如果我尝试进行身份验证 curl d client id flask api d client secret 98594477 af85 4
  • 从本地路径加载图像并将其绘制在画布上

    我想在画布上绘制图像 其中图像源将由用户动态设置 在尝试设置图像的 src 时出现以下错误 不允许加载本地资源 file D My 20Picsb jpg 有没有办法从本地驱动器加载文件以将它们绘制在画布上 var img new Imag
  • 将当前过滤器选择提供给 Django 中的另一个自定义 SimpleListFilter

    我正在尝试更改一个过滤器的提示 以响应另一个过滤器中所做的当前选择 我非常不知道如何将 AttributeCategoryFilter 的当前选定值传递到 AttributeFilter 中 我正在使用 Django 1 4 dev 试图弄
  • 从整数数组中删除重复项

    我在编码时遇到问题 编写一个名为的静态方法removeDuplicates它接受一个整数数组作为输入 并返回一个删除了所有重复项的新整数数组作为结果 例如 如果输入数组包含元素 4 3 3 4 5 2 4 则结果数组 应为 4 3 5 2
  • BitTorrent 磁力链接如何工作?

    我第一次使用磁力链接 http en wikipedia org wiki Magnet URI scheme 我很好奇它是如何工作的 因此查阅了规格 但没有找到任何答案 维基百科说xt表示 确切的主题 后跟格式 btih在本例中 使用 S
  • 如何注销会话 MVC Razor Visual Studio

    我正在尝试从 MVC Razor 中的会话注销 这是我目前 MainController 中的内容 HttpPost public ActionResult Login Users user if ModelState IsValid if