HttpContext.Current.User.Identity.Name 始终为 string.Empty

2024-03-26

您好,我使用自定义 MembershipProvider。

我想在应用程序场景中知道当前用户名,但是当我尝试访问 HttpContext.Current.User.Identity.Name 时,它​​总是返回 string.Empty。

if (Membership.ValidateUser(tbUsername.Text, tbPassword.Text))
{
    FormsAuthentication.SetAuthCookie(tbUsername.Text, true);
    bool x = User.Identity.IsAuthenticated; //true
    string y = User.Identity.Name; //""
    FormsAuthentication.RedirectFromLoginPage(tbUsername.Text, cbRememberMe.Checked);
}

我错过了什么吗?


FormsAuthentication.SetAuthCookie(tbUsername.Text, true);
bool x = User.Identity.IsAuthenticated; //true
string y = User.Identity.Name; //""

您遇到的问题是,此时您仅设置身份验证 cookie,在表单身份验证模块内创建的 IPrincipal 在有新请求之前不会发生 - 所以此时 HttpContext.User 处于奇怪的状态。一旦发生重定向,因为这是来自浏览器的新请求,所以在到达您的页面并创建正确的用户对象之前,将读取 cookie。

Cookie 仅在请求完成后才会在浏览器上设置。

顺便说一句,RedirectFromLoginPage 无论如何都会创建一个表单身份验证 cookie,您不需要手动执行此操作

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

HttpContext.Current.User.Identity.Name 始终为 string.Empty 的相关文章

  • ASP.NET 的电子邮件地址验证

    使用什么来验证 ASP NET 表单上的电子邮件地址 我想确保它不包含 XSS 漏洞 这是 ASP NET 1 1 ASP NET Web 表单上发布的任何脚本标记都会导致您的网站抛出未处理的异常 您可以使用 asp 正则表达式验证器来确认
  • 提高 ASP.NET/C# 编译速度的最佳方法是什么?

    更新 请将您的答案集中在硬件解决方案上 您使用什么硬件 工具 插件来提高 ASP NET 编译和首次执行速度 我们正在寻找固态硬盘来加快速度 但现在价格确实很高 我现在有两个 RAID 0 的 7200 rpm 硬盘 但我对性能不再满意 所
  • 从 WebAPI 发送大文件。内容长度为 0

    我正在尝试将大文件 GB 从一个WebAPI NET Core 发送到另一个WebApi Net Core 我已经设法发送较小的文件作为多部分请求的一部分 就像上一篇文章中那样 link https forums asp net t 209
  • 如何覆盖/更新当前由 IIS 提供服务的文件?

    问题 我的公司每月发布一份时事通讯 我将其托管在我们的内部网站上 我有一个供时事通讯作者上传最新版本的页面 作者上传最新的新闻通讯后 他会发送一封广播电子邮件来宣布新的新闻通讯 员工总是会检查新的时事通讯并向作者发送反馈以及需要进行的更正
  • 如何以编程方式检测我的应用程序是否在 ASP.NET 页面中以 IIS 7.0 集成模式运行

    一般来说 我们应该控制我们的 AppPools 并能够强制使用托管管道模式 就我而言 我没有控制权 并且希望根据托管管道模式 集成与经典 以稍微不同的方式实现代码背后的代码 我只是不知道如何检测到这一点 有没有一种简单的方法可以从代码隐藏页
  • Gridview 中的分页不起作用第二页数据未显示数据?

    我的网格视图 div style margin left 100px div
  • 内存不足异常

    我有一个非常占用内存的应用程序 它在一些大数组中保存了大量的数据 我最近注意到偶尔出现 OutOfMemoryException 这些 OutOfMemoryExceptions 早在我的应用程序 ASP Net 用完可用的 800mb 内
  • 将 cookie 设置为在会话结束时过期? ASP.NET

    我很惊讶我找不到任何答案 如何将 cookie 中的 sessionid 设置为在会话结束时过期 当浏览器关闭或用户一段时间不活动时 我发现的两个解决方案是 httpcookie Expires HttpContext Current Se
  • aspnet webforms禁用提交按钮

    我在 Webforms 中遇到一个小问题 我正在尝试禁用提交时的提交按钮 以防止重复发布 问题是 如果在回发期间禁用提交按钮 则不会调用代码隐藏中的 onclick 方法 回发仍然发生 但按钮 onclick 方法不会被调用 有办法解决这个
  • HttpResponse 过滤器不返回任何内容

    我编写了一个 HttpModule 用于拦截对 WebResource axd 处理程序的调用 以便我可以对 javascript 执行一些后处理 该模块包装 Response Filter 流以执行其处理并将其更改写入底层流 我遇到的问题
  • 单选按钮列表 OnSelectedIndexChanged

    我正在寻找处理 ASP net RadioButtonList 后面的 C 代码 上选择的索引更改的最佳方法 我有 3 个列表项 对于第一个 我希望它在页面上显示隐藏的 asp textbox 而其他 2 个将隐藏文本框 asp net s
  • ASP.NET 代码表达式、数据绑定和其他声明式表达式

    这些标签有什么区别 更重要的是 如何在 ASP NET 控件中使用声明性语法显示页面属性 我正在尝试在 ASP NET 控件中执行此操作 任务是设置标签的文本 但如果我想更改输出控制 我不想以语法方式执行此操作 我收到有关服务器端控件不能包
  • ASP.NET 中的 Request.Headers["Header-Name"] 区分大小写吗?

    Is Request Headers Header Name 在 ASP NET 中区分大小写吗 如果是 如果我不确定客户端会在什么情况下发送它 我应该如何获取某个标头 例如 X requested with 不 它们不区分大小写RFC26
  • 全局主题目录的 iis 快速路径

    我正在使用 Visual Studio 2010 SP1 ASP NET Webforms Framework NET 3 5 和IIS 快递 也称为 WebMatrix 我在 Visual Studio 中使用我的网站收到以下编译错误 T
  • 在javascript中调用c#函数[重复]

    这个问题在这里已经有答案了 可能的重复 从 Javascript 调用 ASP NET 函数 https stackoverflow com questions 3713 call asp net function from javascr
  • 从 MySql 返回最后插入的 id

    我在执行以下查询时遇到了一些问题 START TRANSACTION SET LASTID 0 INSERT INTO Accounts Col1 col2 col3 col4 VALUES param1 param2 param3 par
  • asp:GridView 控件的 EditTemplate 属性

    我有一个 asp GridView 其中有两列 在一列中我想显示标签 但是当我单击 sdit 按钮时 我想在该特定列中显示一个下拉列表 我创建了如下网格视图
  • Request.Url.Port 给出错误的端口

    我的支持团队为我提供了一个 Live IP 例如http 201 121 152 168 68 现在在正常情况下你会认为68是端口 但是 当我执行 Request Host 时 我得到201 121 152 168当我执行 Request
  • 无法加载 DLL“VSPerf110.dll”

    当我发布我的网络应用程序并拥有Precompile during publishing检查我在我的网络服务器上收到此错误 无法加载 DLL VSPerf110 dll 无法加载指定的模块 成立 HRESULT 异常 0x8007007E 如
  • System.Globalization.CultureInfo 不包含 Name 的定义

    我对 System Globalization CultureInfo 类和 System Globalization 命名空间有这个特殊问题 我从具有 CultureInfo 属性的 API 调用返回一个对象 语言 我能够成功地将其在客户

随机推荐

  • 回复卡未显示 -Amazon lex

    我创建了一个 lex 聊天机器人并将其集成到网站中 它工作正常 我知道我必须从 lambda 调用响应卡 我也这样做了 另外 我在 lex 控制台中启用了响应卡复选框 毕竟 我也看不到网站中的按钮 除了响应卡之外 还有其他方式显示按钮吗 下
  • Pyenv 的 python 缺少 bzip2 模块

    我使用 pyenv 安装 python 3 8 2 并创建一个 virtualenv 在virtualenv中 我使用pipenv来安装pandas 但是 当导入 pandas 时 我得到以下信息 File home luislhl pye
  • roxygen2 importFrom 和二元运算符

    格式化呼叫的方式是什么importFrom使用时roxygen2 我可以看到两种方法 importFrom base in or importFrom base in 显然我们不会将基本函数导入到包中 但这是为了演示 我测试了一下HERE
  • 如何给listview添加跑马灯效果?

    我在 ArrayList 中有我的朋友列表 我正在尝试使用 ArrayAdapter 和 rowlayout xml 在列表视图中显示它
  • Python 3 和二进制文件的 base64 编码

    我是 Python 新手 确实有一个问题困扰着我 我使用以下代码获取 zip 文件的 Base64 字符串表示形式 with open C Users Mario Downloads exportTest1 zip rb as file z
  • 停止 Eclipse/Java 运行多个实例

    我不是 java 专家或 eclipse 专家 目前我正在开发一个项目 我需要经常调试 测试 我使用 eclipse run 按钮 但是当我不关闭程序 eclipse java 时 它会再次打开 第二个窗口 这是一个带有 swing jfr
  • 使用 Windows Installer 取消 Windows 服务安装/卸载会导致服务安装/卸载不完整

    我已经使用 VS 2017 为 Windows 服务创建了一个 Windows Installer Windows 服务内部有一个项目安装程序和服务安装程序类 当我中途取消卸载过程时 该过程会删除 Windows 服务 但不会更新数据 因此
  • 前置声明有哪些危险?

    我刚刚接受采访 有人问我什么是 前瞻性声明 然后有人问我是否存在与前瞻性声明相关的危险 我无法回答第二个问题 在网上搜索并没有出现任何有趣的结果 那么 有人知道使用前向声明有什么危险吗 好吧 除了重复的问题之外 标准中至少有一个痛处 如果你
  • 从 String java 或 javascript 中修剪 和
    标签

    我想使用 java 或 javascript 从字符串中删除开头和结尾的 br 和 nbsp 标签 输入和所需的输出托管在 jsfiddle net 中 因为 Stackoverflow 不允许我发布 html 内容 http jsfidd
  • Java Swing 中的 PNG 渲染不良(颜色深度低)

    我目前正在使用 swing 在 java 中设计吃豆人 我有使用以下语句在屏幕上绘制的 PNG 图像 wall new ImageIcon GamePanel class getResource wall png getImage g2d
  • 如何使用 PowerShell 将“date-1”格式设置为 mm-dd-yyyy?

    一个人如何得到date 1并在 PowerShell 中将其格式化为 mm dd yyyy 示例 如果今天是 2013 年 11 月 1 日 我的代码中需要 10 31 2013 我以前使用过 AddDays 1 但我似乎无法让它与任何格式
  • 启动 PyQt 应用程序而不阻塞主线程

    我正在向现有应用程序添加 PyQT UI 我必须初始化QAppliaction通过我在主线程上从该应用程序收到的回调 我无法从回调中同步执行此操作 因为我最终必须调用app exec 这是阻塞的 阻止现有应用程序继续运行 显然 生成常规线程
  • 将 JSON 数组读入类似 Julia DataFrame 的类型

    给定一个 JSON 文件 JSON 包会愉快地解析它 但如果我想把它作为DataFrame 或任何其他柱状数据结构 获得它的好方法是什么 目前 例如 我有 using JSON using DataFrames json str color
  • 使用 powershell 从多台计算机中提取注册表值

    我和一位同事正在尝试创建一个 powershell 脚本 该脚本使用一个 CSV 文件 其中包含公司网络上所有计算机的名称 并使用这些名称连接到远程注册表并提取特定值 这是我们目前所拥有的 strMachineName import csv
  • MySQL存储过程中用于选择数据的if语句

    我有下面的 SQL 代码 DELIMITER CREATE PROCEDURE test new procedure queryString VARCHAR 255 BEGIN SELECT tempValue COUNT FROM tes
  • 被类覆盖的扩展方法不会给出警告

    我在另一个线程中进行了讨论 发现类方法优先于具有相同名称和参数的扩展方法 这很好 因为扩展方法不会劫持方法 但假设您已向第三方库添加了一些扩展方法 public class ThirdParty public static class Th
  • pdf-writer 无效的多字节字符 (US-ASCII) 期望 keywords_end 内容 = "%PDF-#{@version}\n%âãÏÓ\n" Rails 3

    我在尝试运行的协作项目中遇到了 pdf writer gem 的问题 我正在使用RVM Ruby 1 9 2p180 Rails 3 1 0 on Ubuntu 10 10 我创建了一个新的gemset使用 Bundler 安装所需的 ge
  • 如何模拟 Object.getClass?

    我正在开发一个 Java 项目 想要为 DTO 中的 equals 方法编写单元测试 在 equals 方法中 有一个 getClass 方法由两个被测试对象调用 我想模拟这个 但我不知道它想要什么类型的对象 我试过 when mockRo
  • 带有窗口服务的网络打印

    我有一个朋友用窗口窗体做了同样的事情 我需要的是将其作为窗口服务 Window 服务程序 打印控制器服务 将用作中央打印机控制器 根据情况 我将打印作业发送到网络上的不同打印机 打印机安装在USB上 已经可以进行测试打印 但是当我列出已安装
  • HttpContext.Current.User.Identity.Name 始终为 string.Empty

    您好 我使用自定义 MembershipProvider 我想在应用程序场景中知道当前用户名 但是当我尝试访问 HttpContext Current User Identity Name 时 它 总是返回 string Empty if