ASP.NET MVC 4 cookie 消失

2024-04-26

我有一个 ASP.NET 应用程序,它将身份验证 cookie 发送到 ASP.NET MVC 应用程序,用作后台应用程序。

我添加了一个全局过滤器,用于检查身份验证 cookie 的每个控制器操作。如果cookie存在,则允许用户进入该页面。

代码如下所示:

 public class SecurityFilter : FilterAttribute, IAuthorizationFilter
    {
        public void OnAuthorization(AuthorizationContext filterContext)
        {
            // TODO: For some reason .AUTHCookie cookie isn't exist in request context of filter,

                           HttpCookie cookie = filterContext.RequestContext.HttpContext.Request.Cookies[".AUTHCookie "];


            if (cookie != null)                 {

从另一边我可以看到从 ASP.NET 应用程序发送的 cookieApplication_BeginRequestGlobal.asax 文件中的事件。

cookie 在哪里以及为何消失? Cookie 在 MVC 请求处理管道的哪一部分被丢弃?

  protected void Application_BeginRequest(object sender, EventArgs e)
        {
            var cookies = HttpContext.Current.Request.Cookies;
            // HERE I CAN SEE BOTH cookies. In filter action only one cookie was found. The authentication cookie is thrown somewhere ...
        }  

我找到了适合我的场景的解决方案。我已经在两个应用程序的机器密钥中添加了兼容性模式=“Framework45”,并且一切正常。

注意:如果您的应用程序之一使用旧版本的 .NET Framework,则必须显式配置 .NET 4.5 应用程序以使用早期的计算机兼容模式,否则它们将无法加密/解密表单身份验证票证。

只是提醒你我的情况:

WebForms ASP.NET 4.5

<machineKey compatibilityMode="Framework45" decryption="AES" validation="SHA1" decryptionKey="your_key1" validationKey="your_keu2" />
  <authentication mode="Forms">
    <forms name="_authcookie" domain=".domain.com" loginUrl="Default.aspx?View=1" defaultUrl="Default.aspx?View=1" timeout="30" path="/" protection="All" slidingExpiration="true" enableCrossAppRedirects="true" />
  </authentication>

MVC 4
<machineKey compatibilityMode="Framework45" decryption="AES" validation="SHA1" decryptionKey="your_key1" validationKey="your_keu2" />
   <authentication mode="Forms">
     <forms name="_authcookie" domain=".domain.com" defaultUrl="~/" timeout="30" path="/" protection="All" slidingExpiration="true" enableCrossAppRedirects="true" />
    </authentication>

兼容模式的可能值:

http://msdn.microsoft.com/en-us/library/system.web.configuration.machinekeysection.compatibilitymode.aspx http://msdn.microsoft.com/en-us/library/system.web.configuration.machinekeysection.compatibilitymode.aspx

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

ASP.NET MVC 4 cookie 消失 的相关文章

  • 带或不带虚拟目录的 CssRewriteUrlTransform

    我们在我们的网站中使用 MVC 捆绑 CssRewriteUrlTransform确保图像 url 可在动态捆绑 css 文件中使用 但这仅在不使用虚拟目录时有效 即 http localhost VirttualDir不起作用但是http
  • 计算 bing 地图中两点之间的距离

    我有一个 bing 地图和两个点 Point1 Point2 我想计算这两点之间的距离 那可能吗 如果我想在 point1 和 point2 之间以及 point2 附近的路径的三分之二处放置一个圆 我该怎么做 微软有一个GeoCoordi
  • C# 多维数组解析

    我有一个多维数组 内容在调试器中看起来像这样 数组设置为 String s new String 6 4 A B Yes C A B Yes C A B No C A B Yes C A B Yes C A B Yes C A B No C
  • 十六进制值 0X03 是无效字符

    这是一个网页的源码 p Da 32 brow 35 a G rn x3 icza p p 我需要浏览此页面并复制显示的文本 之后 我将此文本粘贴到 ASP NET MVC 应用程序的输入文本框中 以便在数据库中创建新记录 布局页面的元字符集
  • ASP.NET Identity 2.0解密Owin cookie

    我正在应用多租户的服务器端应用程序中工作 在这个服务器端我有一个后台 ASP NET MVC 和后端 WCF 我想解密身份 cookie 以便我可以检查它是否有效并使用它在 WCF 服务中进行身份验证 更具体地说 我真的想知道 ASP NE
  • 如何提取Firefox会话cookie(Python语言首选)

    我正在尝试从数据库 cookies sqlite 中提取 FF cookie 然而 似乎只能在那里找到具有过期日期的cookie 我正在搜索会话结束时过期的cookie 我什至打开了FF的 记住打开的标签 功能 我不明白 它们之间的根本区别
  • Ajax.ActionLink 和确认对话框

    我有一些问题 Ajax ActionLink 我想显示确认对话框 是的 我知道我可以这样做 Ajax ActionLink Do it Delete new AjaxOptions Confirm Are you sure 但我想要有自己的
  • 从浏览器中删除cookie?

    有什么方法可以指示网络浏览器完全delete一个人的cookie是用PHP设置的吗 我不想expiry或者等待浏览器closed 对于删除 我的意思是实际上不再将其列在 cookie 列表中 尝试这样删除所有 cookie foreach
  • 使用 WatiN 获取设置的 cookie 列表

    有没有办法使用 WatiN 获取网站设置的所有 cookie 列表 WatiN 中的 IE 浏览器类提供了GetCookie方法允许您检索特定的 cookie 但我想迭代所有已设置的 cookie 有两种方法可以让您获取 cookie Co
  • 如何有效地测试action是否用属性(AuthorizeAttribute)修饰?

    我正在使用 MVC 并且有一种情况OnActionExecuting 我需要确定即将执行的Action方法是否用属性修饰 AuthorizeAttribute尤其 我不是问授权是否成功 失败 而是问该方法是否需要授权 对于非 MVC 人员
  • GCloud 负载均衡器会话亲和性 cookie“Set-Cookie”标头 - 由于误用“sameSite”属性,在 Firefox 中成为错误

    根据手册页 https cloud google com load balancing docs backend service http cookie affinity https cloud google com load balanc
  • 如何使用 jQuery 设置/取消设置 cookie?

    如何使用 jQuery 设置和取消设置 cookie 例如创建一个名为test并将值设置为1 2019 年 4 月更新 Cookie 读取 操作不需要 jQuery 因此不要使用下面的原始答案 Go to https github com
  • 从任务并行库更新 ProgressBar UI 对象

    基本上我想更新 FormMain WindowsForm 上的 ProgressBar UI 对象 我正在使用 NET 4 0 以下是 Form1 Designer cs 中的代码 namespace ProgressBarApp publ
  • 实体类型 ApplicationUser 不是当前上下文模型的一部分。在项目开始时使用了两个不同的数据库

    我使用实体框架创建了一个 MVC 4 应用程序来读取数据并将数据写入我在 Azure 数据库上托管的数据库 Azure 数据库应该保存应用程序数据和应用程序的登录数据 但是 当我第一次创建应用程序时 我忘记删除到本地计算机的连接字符串 因此
  • 跨线程操作在BackgroundWorker中无效

    我想在数据网格视图中显示有关表单加载的一些数据 我想要显示的数据有大量行 当我使用后台工作处理器时 它向我显示以下错误 My code private void backgroundWorker1 DoWork object sender
  • PhoneGap/Cordova:如何使用cookies(iOS)?

    我有一个适用于 iOS 的 PhoneGap Corodova 项目 在 iOS 模拟器上构建时 我使用了 Jquery Cookies 它们很好 但是 既然我的设备上有该应用程序用于测试 它们就不再工作了 我猜这只是 iOS 不支持的东西
  • 使用 jquery 通配符检查 cookie 名称

    我有一个生成动态 cookie 的表单 例如 webform 62 1234356 62 1234356 可以是任意数字 我需要使用一些通配符检查来检查名称以 webform 开头的 cookie 是否存在 下面不起作用 if cookie
  • iOS 中如何清除特定域的 cookie?

    我已经搜索了 StackOverflow 上的几乎所有问题来寻找我的问题的答案 我还没有找到任何有用的链接或教程来说明哪种方式最好清除特定域的 cookie 如果有人可以帮助我 请 我自己找到了解决方案 如果您想删除 UIWebView 中
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer

随机推荐

  • System.Net.WebException:服务器违反了协议

    我有以下代码来进行调用 然后返回 xml private string Send string url try HttpWebRequest request HttpWebRequest WebRequest Create url usin
  • 在watson会话中,如何从程序中的一个节点跳转到另一个节点?

    我面临一个问题 我已经在 Watson 对话工作区中创建了对话 并且我知道如何跳转到对话中的另一个节点 我的问题是如何跳转java程序 例如 我的对话中有5个节点 它们是顺序 node1 gt node2 gt node3 gt node4
  • 字符串文字:它们去了哪里?

    我对字符串文字的分配 存储位置感兴趣 我确实找到了一个有趣的答案here https stackoverflow com questions 51592 is there a need to destroy char string or c
  • Oracle 10g 内连接的 0RA-00952

    这有效 SELECT PRODUCT INFOS FIELD VALUE PRODUCT INFOS COIL ID SYSTEM PRODUCT INFOS TIME STAMP PRODUCT INFOS FIELD NAME FROM
  • 如何在 Symfony2 中动态添加验证器?

    I ve a password表单字段 not映射到User密码 与其他两个 映射 字段一起用于更改密码表单 first and last 我必须动态添加验证器 如果值密码为空则不进行验证应该发生 否则一个新的MinLength and M
  • 可以从 Angular ng-click 表达式调用“alert()”或“console.log()”吗?

    我试图测试我的ng click绑定正在工作 但我似乎遇到了一个更基本的问题 如何查看正在发生的事情 或没有发生 我常用的 粗暴 调试方法 alert and console log 似乎不可用 是否可以从 Angular 应用程序中访问这些
  • jQuery:处理 id 属性中的空格

    我有一个 id A B 的元素 下面的代码fails
  • Google App Maker 将记录保存到数据库每条记录需要 240 毫秒

    我们有一个使用 Google Cloud SQL 表的 Google App Maker 应用 我们的位置是中欧布拉格 保存一项记录至少需要令人难以置信的 240 毫秒 看起来 Google 应用制作工具在我的位置附近有一个代理 延迟约 2
  • 当您的 ant 构建过程在版本控制上崩溃时该怎么办

    所以我有一个很好的 Java 项目 使用 Ant 构建到 dist 文件夹 整个项目处于版本控制之下 因此我只需通过 dist 文件夹路径上的 svn导出 即可部署最新版本 但我的构建不断删除 dist 文件夹内的 svn 文件夹及其所有依
  • D3 数据对象内的循环数组

    data name c1 id 4690 day 1 3 start 8 00 end 10 00 name c3 id 5283 day 3 4 start 8 00 end 17 00 name c4 id 4862 day 4 sta
  • 为什么要在 php 中使用异常处理?

    我已经编写 PHP 很长一段时间了 但对 PHP 5 的了解并不多 我了解 PHP 5 中的异常处理已经有一段时间了 但从未真正研究过它 经过快速谷歌后 使用异常处理似乎毫无意义 我看不出使用它比仅使用一些 if 语句 也许还有我自己的错误
  • 如何中断 java.util.Scanner nextLine 调用

    我正在使用多线程环境 其中一个线程通过重复调用不断侦听用户输入scanner nextLine 要结束应用程序 此运行循环将由另一个线程停止 但侦听线程不会停止 直到最后一个用户输入完成 由于nextLine 关闭流似乎不是一个选择 因为我
  • 异常:无效参数:continuationToken

    我正在尝试使用 工作示例 线性迭代器 来实现一个简单的延续令牌这个帖子 https stackoverflow com questions 45689629 how to use continuationtoken with recursi
  • NSFetchedResultsController XCode 7 问题

    Xcode 7 beta 6 和 NSFetchedResultsController 今天让我头疼 如果我使用 Xcode 6 编译相同的代码 使用 Swift 2 修复 程序可以在设备和模拟器 iOS 7 iOS8 上运行 但是 如果我
  • 如何更改更新数据库 ef 迁移的连接字符串?

    我正在尝试运行 Update Database 并且想指定连接字符串 但 CLI 正在查看错误的字符串 我的 appsettings json 文件中有两个连接字符串 Logging IncludeScopes false LogLevel
  • iOS/Objective-C 的 switch 语句中的失败

    假设我有一个包含五个案例的 switch 语句 但只有两个真正的方法被调用 如下所示 switch condition case conditionOutcome1 self firstMethod break case condition
  • 如何在隐身模式下启用 chrome 扩展的 pageAction 图标?

    即使选择 允许在隐身模式 后 使用 pageaction 在某些网址中呈现的扩展也不会在隐身模式下显示 background js 有以下内容 chrome runtime onInstalled addListener function
  • 使用WebView setHttpAuthUsernamePassword?

    我正在尝试进行基本身份验证以查看受保护的网址 我想访问受保护的网址 如下所示 http api test com userinfo vid 1234 所以我用 WebView 执行以下操作 mWebView setHttpAuthUsern
  • 如何在 Flutter 中保存用户登录详细信息?

    我是颤振新手 想要制作一个只有经过身份验证的用户 通过填写电子邮件和密码 才能使用的应用程序 所以我正在考虑制作一个名为的根小部件Authentication我将在其中检查用户是否经过身份验证 如果他们是那么带他们去Home Widget
  • ASP.NET MVC 4 cookie 消失

    我有一个 ASP NET 应用程序 它将身份验证 cookie 发送到 ASP NET MVC 应用程序 用作后台应用程序 我添加了一个全局过滤器 用于检查身份验证 cookie 的每个控制器操作 如果cookie存在 则允许用户进入该页面