如何注销会话 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 的相关文章

随机推荐

  • 让 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