Membership.GetUser().ProviderUserKey 始终返回 null

2023-12-10

我最近开始使用 ASP.NET 表单身份验证和成员身份。

我在 Visual Studio 中创建了一个 C# 项目,它会自动创建“/Account/Login.aspx”之类的页面。

然后我按照一个安装示例aspnet_*表到我的 SQL Server 数据库,并且我已经能够使用<asp:CreateUserWizardStep>控制创建用户。

然后我就能够以该用户身份登录,并且在调用时会显示登录的用户名<asp:LoginName>

但是,当我在按钮单击事件处理程序中的 C# 代码中调用以下代码时,我总是收到空引用异常:

string UserID = Membership.GetUser().ProviderUserKey.ToString();

这不应该返回UserID来自我的 aspnet_users 表?

If <asp:LoginName>显示 UserName 值,我不应该总是能够调用Membership.GetUser().ProviderUserKey


首先检查您是否拥有有效的经过身份验证的用户 ID。从你的问题来看,你好像确实有。但一系列的检查始终是一个好的做法。

我喜欢使用这两个方法(第二个方法调用第一个方法,但您也可以直接调用第一个方法。我建议调用第二个方法),它们执行各种检查并返回用户 ID,如果存在用户,则返回 null未验证或未识别:

    public static MembershipUser GetCurrentUser()
    {
        HttpContext httpContext = HttpContext.Current;
        if (httpContext != null && httpContext.User != null && httpContext.User.Identity.IsAuthenticated)
        {
            return Membership.GetUser();
        }

        return null;
    }

    /// <summary>
    /// Safe check of authenticity. Better than Request.IsAuthenticated in that if there's a used-to-be-valid cookie which does not correspond to the current database, it will fail safe
    /// </summary>
    /// <returns></returns>
    public static bool IsUserAuthenticated()
    {
        if (HttpContext.Current == null)
            return false;

        var request = HttpContext.Current.Request;

        if (!request.IsAuthenticated)
            return false;

        var membershipUser = GetCurrentUser();

        if (membershipUser != null)
            return true;

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

Membership.GetUser().ProviderUserKey 始终返回 null 的相关文章

  • Signalr 在生产服务器中总是陷入长轮询

    当我在服务器中托管应用程序时 它会检查服务器端事件并始终回退到长轮询 服务器托管环境为Windows Server 2012 R1和IIS 7 5 无论如何 我们是否可以解决这个问题 https cloud githubuserconten
  • 在 Xamarin Android 中将图像从 URL 异步加载到 ImageView 中

    我有一个包含多个项目的 ListView 列表中的每个项目都应该有一个与之关联的图像 我创建了一个数组适配器来保存每个列表项并具有我希望加载的图像的 url 我正在尝试使用 Web 请求异步加载图像 并设置图像并在加载后在视图中更新它 但视
  • C# 中值类型和引用类型有什么区别? [复制]

    这个问题在这里已经有答案了 我知道一些差异 值类型存储在堆栈上 而引用类型存储在托管堆上 值类型变量直接包含它们的值 而引用变量仅包含对托管堆上创建的对象位置的引用 我错过了任何其他区别吗 如果是的话 它们是什么 请阅读 堆栈是一个实现细节
  • 跨多个控件共享事件处理程序

    在我用 C 编写的 Windows 窗体应用程序中 我有一堆按钮 当用户的鼠标悬停在按钮上时 我希望按钮的边框发生变化 目前我有以下多个实例 每个按钮一个副本 private void btnStopServer MouseEnter ob
  • C# 中可空类型是什么?

    当我们必须使用nullable输入 C net 任何人都可以举例说明 可空类型 何时使用可空类型 https web archive org web http broadcast oreilly com 2010 11 understand
  • c 中的错误:声明隐藏了全局范围内的变量

    当我尝试编译以下代码时 我收到此错误消息 错误 声明隐藏了全局范围内的变量 无效迭代器 节点 根 我不明白我到底在哪里隐藏或隐藏了之前声明的全局变量 我怎样才能解决这个问题 typedef node typedef struct node
  • c# Asp.NET MVC 使用FileStreamResult下载excel文件

    我需要构建一个方法 它将接收模型 从中构建excel 构建和接收部分完成没有问题 然后使用内存流导出 让用户下载它 不将其保存在服务器上 我是 ASP NET 和 MVC 的新手 所以我找到了指南并将其构建为教程项目 public File
  • 按字典顺序对整数数组进行排序 C++

    我想按字典顺序对一个大整数数组 例如 100 万个元素 进行排序 Example input 100 21 22 99 1 927 sorted 1 100 21 22 927 99 我用最简单的方法做到了 将所有数字转换为字符串 非常昂贵
  • 为什么模板不能位于外部“C”块内?

    这是一个后续问题一个答案 https stackoverflow com questions 4866433 is it possible to typedef a pointer to extern c function type wit
  • 使用 LINQ 查找列表中特定类型的第一个元素

    使用 LINQ 和 C 在元素列表中查找特定类型的第一个项目的最短表示法是什么 var first yourCollection OfType
  • Windows 10 中 Qt 桌面应用程序的缩放不当

    我正在为 Windows 10 编写一个简单的 Qt Widgets Gui 应用程序 我使用的是 Qt 5 6 0 beta 版本 我遇到的问题是它根本无法缩放到我的 Surfacebook 的屏幕上 这有点难以判断 因为 SO 缩放了图
  • 像“1$”这样的位置参数如何与 printf() 一起使用?

    By man I find printf d width num and printf 2 1 d width num 是等价的 但在我看来 第二种风格应该与以下相同 printf d num width 然而通过测试似乎man是对的 为什
  • 更改窗口的内容 (WPF)

    我创建了一个简单的 WPF 应用程序 它有两个 Windows 用户在第一个窗口中填写一些信息 然后单击 确定 这会将他们带到第二个窗口 这工作正常 但我试图将两个窗口合并到一个窗口中 这样只是内容发生了变化 我设法找到了这个更改窗口内容时
  • 可空属性与可空局部变量

    我对以下行为感到困惑Nullable types class TestClass public int value 0 TestClass test new TestClass Now Nullable GetUnderlyingType
  • 检查 url 是否指向文件或页面

    我们需要以下内容 如果文件确实是文件 则从 URL 下载该文件 否则 如果它是一个页面 则什么也不做 举个简单的例子 我有以下命令来下载文件 My Computer Network DownloadFile http www wired c
  • 如何在服务器上保存用户凭据以在后台运行查询

    背景 我们有一个 ASP NET Silveright Web 应用程序 silverlight客户端显示用户 图形形式的特定数据 它从服务器请求数据 问题 由于服务器必须执行底层数据库查询 获取这些数据的成本很高 因此客户端必须等待 优化
  • char指针或char变量的默认值是什么[重复]

    这个问题在这里已经有答案了 下面是我尝试打印 char 变量和指针的默认值 值的代码 但无法在控制台上看到它 它是否有默认值或只是无法读取 ASCII 范围 include
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • 如何使用 ReactiveList 以便在添加新项目时更新 UI

    我正在创建一个带有列表的 Xamarin Forms 应用程序 itemSource 是一个reactiveList 但是 向列表添加新项目不会更新 UI 这样做的正确方法是什么 列表定义 listView new ListView var
  • 将 viewbag 从操作控制器传递到部分视图

    我有一个带有部分视图的 mvc 视图 控制器中有一个 ActionResult 方法 它将返回 PartialView 因此 我需要将 ViewBag 数据从 ActionResult 方法传递到 Partial View 这是我的控制器

随机推荐

  • Android facebook 图表批处理 api

    我正在尝试使用图批量API 有参考代码吗 我们如何设置 参数 有没有人参考android应用程序使用过batch api 我在用这个链接我还使用过单独的图形 API 例如 fbApiObj request me notifications
  • 确定向量中每个唯一元素的出现次数

    如何确定 MATLAB 向量中某个值的相对频率 vector 2 2 2 2 1 1 1 2 2 1 1 1 2 2 2 2 1 2 什么函数将返回每个唯一元素出现的次数 您可以使用unique结合histc以获得相对频率 A 1 2 3
  • 为什么 pySerial 不写入我的程序内部?

    所以我在我的arduino nano上设置了一个程序 它从串行端口读取一个字节 并根据收到的字节是1还是0来打开LED 我在串行监视器和在 python 3 shell 中使用 pySerial 它工作得很好 但是当我有一个像这样的简单程序
  • Bootstrap Sass 与 Rails 4

    我正在尝试在我的rails 4 0 0 项目中使用bootstrap sass 3 1 0 2 和sass rails 4 0 1 我的 application css scss 文件如下所示 This is a manifest file
  • 管理多个开发人员的 sys.path

    我面临的问题虽小但很烦人 一位同事正在开发版本控制系统 X VCS X 中的一个项目 另一位同事正在另一个版本控制系统 Y 中工作 并使用来自 X 的软件包 不幸的是 VCS X 中的同事使用本地导入并使用修改他的路径sys path ap
  • 当列数小于列数时,Chrome 列会出现错误

    我在使用 Chrome 时遇到问题column count财产 我有一个 div 里面有一些项目 所以我设置column count 3 当我有 3 个或更多项目时 它效果很好 但是当我只有两个项目时 它们不会显示在同一行中 而是显示在同一
  • 在solvet()中使用erf()函数时,sympy和mpmath给出“TypeError:无法创建mpf”

    我有 4 个输入变量 浮点数 Xmax Xmin 百分比 mode 我想求解 s 的以下 相当长的 方程 gt 1 2 1 2 erf log Xmax log mode s 2 sqrt 2 s 1 2 1 2 erf log Xmin
  • Hashlib 和 System.Security.Cryptography.HashAlgorithm 之间的区别

    我试图了解哈希算法的工作原理 特别是 SHA3 512 为了看看它是如何工作的 我在谷歌中搜索了代码并发现了Hashlib 该代码不起作用 因为我没有 Hashlib 库 不确定它应该被称为什么 我怎样才能得到它 这是在 C 中应用 SHA
  • Facebook SDK 3.1 - com.facebook.sdk 使用 [facebook Authorize:permissions] 进行身份验证时出现错误 5

    使用以下授权方法进行身份验证时 我在 startWithGraphPath 和 startForMeWithCompletionHandler 中收到 com facebook sdk 错误 5 但在 requestWithGraphPat
  • Java 中的按位与 (&) 表达式

    我正在调试其中的代码expr1 expr2 where expr1有一个影响的副作用expr2评价结果 我怀疑expr2之前被评估过expr1 因为 JLS 保证从左到右评估 但不一定是为了 我还怀疑评估顺序的更改可能是 HotSpot 执
  • 获取cookie过期时间

    是否可以使用 php 读取 cookie 过期时间 当我print r COOKIE 它输出 Array PHPSESSID gt 0afef6bac83a7db8abd9f87b76838d7f userId gt 1232 userEm
  • Extjs 创建网格功能或网格插件,为网格中的每一列设置工具提示

    这个问题有添加工具提示的答案 Extjs4 在 gridPanel 中每列悬停时设置工具提示 我对这个问题最受好评的答案有一个后续问题 即修改渲染器函数以添加工具提示 如下所示 xtype gridcolumn dataIndex stat
  • 什么是窗口加载替代方案?

    我有以下情况 我想show我的图片at once仅当页面完全加载时 因为我想避免在 内一张一张地显示图像文档准备功能 它们最初是隐藏的 并希望向它们显示at once仅当文档加载完成时 所以我使用 window load function
  • 将 csrf 令牌从 Laravel 传递到 Vue

    Pass csrf令牌来自Laravel 到 Vue我有一个单独的 Vue 应用程序用于客户端 Laravel 应用程序用于后端 API 我使用 Cookie 因此需要 csrf 保护 如何将 csrf 令牌从服务器传递到客户端 每 XX
  • 为什么 Dataflow-BigTable 连接器不支持增量?

    我们在流模式下有一个用例 我们想要跟踪管道中 BigTable 上的计数器 items 已完成处理的东西 为此我们需要增量操作 从看https cloud google com bigtable docs dataflow hbase 我发
  • OnTriggerEnter2D 未被调用

    我正在尝试在 Unity 中制作小行星的复制品 问题是我的子弹没有触发OnTriggerEnter2D小行星上的方法 小行星附有以下脚本 using UnityEngine using System Collections public c
  • 有没有办法为 Windows 窗体中的特定按钮挂钩鼠标事件

    我想从特定窗口内的特定按钮挂钩 WM MOUSEDOWN 和 WM MOUSEUP 事件 我想 SetWindowsHookEx 会挂钩我想要的消息 FindWindowEx 将帮助我找到我想要捕获这些事件的窗口句柄 我只是不知道如何让它从
  • 如何在用户窗体上使用带有选项按钮控件的事件[重复]

    这个问题在这里已经有答案了 我正在尝试从 Excel 工作表中的范围添加选项按钮 For Each Value In OptionList Set opt UserForm3 Controls Add Forms OptionButton
  • AngularJs 中控制器之间的通信

    我有一个简单的问题 当两个控制器之间 比方说 进行交互时 最好的 最干净的 可扩展的 路径是什么 那会是定义一个服务并观察该服务的返回值以便做出反应吗 我设置了一个简单的例子here 我在其中查看服务的当前值 scope watch fun
  • Membership.GetUser().ProviderUserKey 始终返回 null

    我最近开始使用 ASP NET 表单身份验证和成员身份 我在 Visual Studio 中创建了一个 C 项目 它会自动创建 Account Login aspx 之类的页面 然后我按照一个安装示例aspnet 表到我的 SQL Serv