问题标签 [forms-authentication]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1411 浏览

asp.net - 新创建的身份验证票证中的到期日期(asp.net forms auth)

我正在使用 asp.net 表单身份验证和 asp.net 登录控件。登录控件有一个“RememberMe”复选框。

用户通过身份验证后,它会引发 LoggedIn(object sender, EventArgs e) 方法,在此方法中,我正在查看使用此方法创建的身份验证 cookie

当我检查 authCookie.Expires 值时,我希望未选中 RememberMe 时为 30 分钟,选中 RememberMe 时为 50 年(根据 MS 文档,这些是默认值)

但无论我是否检查RememberMe,它总是30 分钟。我检查了我的 web.config 并且我没有为“超时”字段设置任何内容,所以我不确定为什么会发生这种情况。有任何想法吗?

0 投票
5 回答
3761 浏览

authentication - 在达到会话和身份验证票超时值之前,用户被迫随机重新登录

我收到来自我的用户的报告和投诉,他们将使用屏幕并在下一次请求时立即被踢回登录屏幕。它不会一直发生,而是随机发生。查看 Web 服务器后,应用程序事件日志中显示的错误是:

事件代码:4005 事件消息:请求的表单身份验证失败。原因:提供的票已过期。

我阅读的所有内容都是从人们询问网络花园或负载平衡开始的。我们没有使用其中任何一个。我们是带有 IIS6 的单一 Windows 2003(32 位操作系统,64 位硬件)服务器。这也是该服务器上唯一的网站。

此行为不会对用户产生任何应用程序异常或可见问题。他们只是被引导回到登录屏幕并被迫登录。正如您可以想象的那样,这对我们的用户来说非常烦人和适得其反。

这是我在 web.config 中为根中的应用程序设置的内容:

我还读到,如果您的某些位置设置不再存在或者是虚假的,您可能会遇到问题。我的路径属性都是有效的目录,所以这不应该是问题:

我唯一不清楚的是,我在表单属性中的身份验证票的超时值是否必须与我的会话超时值(在 IIS 中的应用程序配置中定义)相同。我读过一些东西说你应该让身份验证超时(40)比会话超时(45)更短,以避免可能的并发症。无论哪种方式,我们都有用户在他们最后一次操作后一两分钟被踢到登录屏幕。所以会话绝对不应该过期。

2009 年 2 月 23 日更新:我已经将会话超时和身份验证票证超时值都设置为 45,问题似乎仍然存在。

应用程序中唯一的其他 web.config 位于托管社区服务器的 1 个虚拟目录中。该 web.config 的身份验证设置如下:

虽然我不认为它适用,除非您在网络花园中,但我将两个 web.config 文件中的机器键值设置为相同(为方便起见已删除):

对此的任何帮助将不胜感激。这似乎是产生大量谷歌结果的问题之一,到目前为止,这些结果似乎都不适合我的情况。

0 投票
1 回答
2780 浏览

c# - FormsIdentity.Ticket.UserData 和身份验证ticket.UserData 保持同步

在我的 asp.net 网站上。我将一些数据放入表单身份验证票的 UserData 部分。稍后我可以使用

我的问题是 - 只要身份验证票有效,这些数据是否总是在 FormsIdentity.Ticket.UserData 中可用?还是我最终需要在身份验证票证中同步 FormsIdentity.Ticket.UserData 和 UserData?

0 投票
1 回答
717 浏览

asp.net - 使用 asp.net CreateUserWizard 时用户何时进行身份验证

我正在使用 asp.net CreateUserWizard,并且我有 LoginCreatedUser=true。我还有一个方法的 CreateUserWizard 控件的“OnCreatedUser”属性,并认为此时会创建身份验证票,但事实并非如此。

身份验证票证 (Request.Cookies[".ASPXAUTH"]) 究竟何时填充?

我需要知道,以便在注册期间我可以修改 UserData 并将其添加到身份验证票中。

0 投票
4 回答
1415 浏览

c# - 用户已通过身份验证,但 Ticket.UserData 丢失

我有以下代码:

关于什么会导致身份验证票有效但 UserData 消失的任何想法?

我的程序通常工作得很好,所有的 UserData 都很容易访问。但是每隔一段时间,我就会进入 UserData 不存在的状态。

0 投票
3 回答
2182 浏览

php - 如何使用 PHP 获取表单身份验证票的内容

我需要撤消 PHP 中的以下 ASP.Net 进程,以便我可以获取票证中的用户名和到期日期。我已经解密了 3DES 加密(下面的第 3 步),但我不确定接下来需要做什么。解密产生的字符串是字节数组吗?我应该能够将其转换为ascii吗?(因为它没有)。

ASP.Net 为创建票证所做的工作:

  1. 序列化用户名、过期时间、其他数据(我不关心)。创建一个字节数组。
  2. 使用 SHA1 签署票证(sig 是最后 20 个字节)
  3. 使用 3DES(我未加密)加密票证。

我回来的东西看起来像这样:

6E 85 A4 39 71 31 46 BB A3 F6 BE 1A 07 EE A4 CE 5F 03 C8 D1 4C 97 5D 6A 52 D1 C4 82 75 5E 53 06 7B 1D D2 4D BF 22 40 F7 F4 B8 8D B0 C3 EC E5 BE F7 52 C2 DF 00 7A D1 CB BC 76 4B 10 33 2D 1A B4 15 A7 BB D6 9D BF 41 69 D2 C4 43 4A 26 95 01 F2 06 AA 46 2C 96 CC AD DC 08 59 C0 64 B6 EE 2C 5F CA ED 8B 92 1C 80 FD FF DC 61 67 28 59 CB E6 71 C6 C3 72 0E D0 32 69 22 57 4E 40 2B DA 67 BA 7F F1 C5 78 BC DF 80 8C D8 F2 8B 19 E2 A4 4F 7C 8C D9 97 37 BD B5 5 0A 66 9B DD E7 直流 7B 78 F4 F8

它不映射到ascii,接下来我该怎么办?我有 SHA1 验证密钥。谢谢你的帮助!

0 投票
2 回答
7349 浏览

asp.net - 以编程方式刷新/更新 HttpContext.User

我将 FormsAuthentication 用于 ASP.NET 站点,该站点具有显示当前登录用户 Page.User.Identity.Name 的母版页。

他们可以在他们的设置中更改他们的用户名,当这样做时,我会为他们更新他们的 cookie,这样他们就不必通过回发退出/重新登录。

我可能很挑剔,但是在他们更改用户名后,母版页仍会显示其原始用户名,直到他们重新加载或加载不同的页面。

有没有办法以编程方式更新当前的 Page.User,以便在同一个回发期间显示他们的新用户名?

0 投票
2 回答
595 浏览

asp.net - 使用表单身份验证将用户链接到配置文件

我正在将旧版 winform 应用程序移动到网络上,并希望获得有关表单身份验证的一些建议。我是否正确假设表单身份验证比汇总我自己的用户身份验证功能更好?

我自己滚动很容易,因为这是 winform 应用程序所做的并且表结构已经支持它,但是表单身份验证看起来会更好地保护站点和用户身份验证信息。

我是一名老程序员,但在 Web 开发方面还很年轻,多年来我了解到,使用内置的 MS 工具有时看起来比实际工作要好……表单身份验证不是其中一种情况吗?

谢谢!

0 投票
2 回答
173 浏览

asp.net - 表单身份验证表位置

当使用 aspnet_regsql 创建表单身份验证的基表时,建议将这些表存储在应用程序数据库目录中,还是应该创建一个仅用于身份验证的数据库目录。

谢谢!

0 投票
2 回答
1236 浏览

c# - 在我的 C# 到 PHP 代码转换中没有得到 sha1 匹配,我错过了什么?

我试图理解这一点,所以我可以做类似的事情。我知道:

buf 包含一个附加了哈希的身份验证密钥(最后 20 个字节) 在 MachineKeySection 中查找的 HashData 是 SHA1

这就是我认为正在发生的事情:我们正在散列除 buf 的最后 20 个字节之外的所有内容。然后,我们一次 1 个字节,将我们刚刚创建的散列与附加到 buf 的最后 20 个字节的散列进行比较。

所以在PHP中我正在尝试这个:

下一步是比较。但是当我回显 $hash 和 sha1($ticket) 的输出时,它们不匹配,所以我什至没有费心在代码中比较它们。