问题标签 [formsauthentication]

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 投票
2 回答
1283 浏览

c# - 我可以创建一个从不参与表单身份验证的 HttpHandler 吗?

我创建了一个注销处理程序,该处理程序在我的 web.config 中注册到 Logout.aspx。我希望它能够从任何路径运行。它工作得很好。我的母版页注册了一个客户端脚本功能,该功能会在人们的票证或会话到期前 1 分钟自动注销(他们从 2 分钟开始收到倒计时警告)。但是,即使我在他们的票证到期前 1 分钟将它们重定向到 Logout.aspx,有时 Logout.aspx 也不会将它们视为已通过身份验证,然后它们会被重定向到登录页面。当然,他们登录后会立即重定向到注销页面并注销。

有没有办法注册一个处理程序,所以它不参与 FormsAuthentication。我猜这很容易,也许使用 IIS 设置?我们使用 IIS7。有什么建议么?

我的 web.config:

我的代码:

0 投票
2 回答
337 浏览

c# - 在表单身份验证中转移而不是重定向到登录

我给谷歌一个包含我所有页面的站点地图,当爬虫试图访问它们时,他会被重定向到登录页面。

在登录页面中,我会解释页面的作用,以便爬虫可以看到每个页面都是不同的。

现在的问题是机器人足够聪明,可以识别出它是一个重定向:

未遵循的 URL 当我们测试您站点地图中的 URL 样本时,我们发现一些 URL 重定向到其他位置。我们建议您的站点地图包含指向最终目的地(重定向目标)的 URL,而不是重定向到另一个 URL。HTTP 错误:302

如果微软没有在 RedirectToLoginPage(String) 中使用重定向,而是使用了 Server.Transfer,谷歌永远不会发现它实际上是同一个页面。

有任何想法吗?

0 投票
1 回答
5496 浏览

c# - FormsAuthentication.SignOut 抛出 NullReferenceException

这个问题似乎与这篇文章有关,但我无法从线程中推断出解决方案。

我在我继承的应用程序中注意到了这段代码(在日志文件中注意到异常被吃掉之后):

我想知道几件事。首先,SignOut 是如何抛出空引用异常的?这是一个例外情况,还是我在我的程序中做错了什么?接下来,我应该测试什么来阻止这个异常被抛出?

15:51:57,288 [13] 错误 ASP.global_asax - System.NullReferenceException:对象引用未设置为对象的实例。在 System.Web.Security.FormsAuthentication.SignOut() 在 MvcApplication.Session_End

谢谢

0 投票
1 回答
175 浏览

asp.net - 将html作为字符串生成为文字时,论坛身份验证注销不起作用

我正在尝试通过动态生成的 HTML(字符串)创建注销按钮。

如您所见,注销方法在服务器代码中:

无论我做什么,这似乎都不起作用(不会触发,不会注销等)。是否有关于将其作为导致此问题的文字的 HTML 字符串?

有人介意告诉我怎么做吗?

谢谢!

0 投票
2 回答
317 浏览

asp.net - 阻止页面或处理程序更新 FormsAuthentication 票证

我在一个域上有几个应用程序,它们共享单点登录的表单身份验证票。我们还在每个页面上都有 javascript,会在用户会话到期前 2 分钟警告用户,并允许他注销或延长会话。当倒计时达到 0 时,它们会自动注销。这一切都很好。但是,当用户打开多个浏览器窗口或选项卡以在各种应用程序上工作时,它会惨遭失败。如果用户在窗口 B 中工作时窗口 A 超时,他们将在下一次请求时退出 B。

我有一个解决方案,但我似乎无法实现它。基本上,当页面呈现时,我会写出票证发行日期的刻度。然后,当自动注销时,我想 ajax 调用一个处理程序来查看这些滴答声是否与当前的表单验证票滴答声相匹配。如果它们不匹配,那么我知道另一个应用程序一直在刷新票证,我不会将它们注销。问题是我无法创建一个不更新票证的通用处理程序,因为我们使用了slidingexpiration = true。

在下面的处理程序代码中,如果我在查询字符串中发送的值与当前工单的刻度相匹配,则数据返回为 0。不幸的是,仅仅请求处理程序的行为就会更新票证并总是发回新的滴答计数。

关于如何在不扩展票证的情况下从服务器获取 JSON 请求的任何想法?

0 投票
1 回答
7696 浏览

asp.net - 为什么 ASP.NET FormsAuthentication cookie 不验证用户身份?

我有一个使用默认 SqlMembershipProvider 和 FormsAuthentication 的站点。我可以使用内置的登录控件和/或以编程方式调用所有方法来验证用户并获得相同的结果 - 用户已通过身份验证并创建了 cookie,但 cookie 似乎无效,因为我可以' t 进入任何需要身份验证的页面。

默认登录控件没有真正的代码可以显示,因为它应该只是“工作”,但这是我尝试的自定义代码:

使用此代码,Membership.ValidateUser() 成功,并且FormsAuthentication.RedirectFromLoginPage() 和 FormsAuthentication.RedirectFromLoginPage() 都成功设置了 cookie - 该 cookie 无法验证我的身份验证。我已经通过删除我所有的 cookie 并观察它们被 FireCookie 再次创建来确认这一点。cookie 名称与我在 web.config 中的名称匹配,域是“/”,到期日期如预期(见下文)。

以下是我的 web.config 的相关部分:

应该注意的是,我还在我的 web.config 文件中添加了一个 machineKey 条目,这是基于此处一个非常相似的问题的建议(这并没有解决我的问题)。另外,作为参考,对于我的持久 cookie,上面的 timeout=525599 比一年少 1 分钟。

0 投票
1 回答
1633 浏览

c# - 如何将 FormsAuthentication 与存储在 SQL Server DB 表中的登录名一起使用?

我正在使用 FormsAuthentication 在 ASP.NET(在 C# 中)中创建一个新的 Web 应用程序进行登录。目前有一个标准的 FormsAuthentication 设置,在 web.config 中像往常一样指定用户名和密码,这个设置运行良好。然而,

我想将此登录设置链接到数据库中的 SQL Server 表。此表存储每个用户的用户帐户信息,包括用户名和密码。基本上,我想找到一种方法,以便以下代码行在此 DB 表中查找用户名和密码,而不是像通常那样在 web.config 中查找:

FormsAuthentication.Authenticate(txt_username.Text, txt_password.Text);

但我不知道如何准确地做到这一点。我一直在阅读有关 Membership.ValidateUser 的信息,但我仍然找不到如何使用它来链接到数据库中用户表中的用户名和密码。

任何帮助将不胜感激!(顺便说一句,这是我的第一篇文章,所以请随时指出我可能犯的任何菜鸟错误)。

0 投票
1 回答
171 浏览

c# - 应为单个页面禁用 Formsauthentication

我对 Formsauthentication 和我的 ajax 调用有疑问。我喜欢 Formsauthenticaction 适用于普通 asp.net 网站的方式。

但是,我的 asp.net 网站中有一个页面,该页面使用 AJAX 调用。在某些情况下,此页面会将响应状态代码设置为未授权 (401)。

现在响应应该结束,我希望看到这个 401 状态码传播到前端。但是 Formsauthentication 会做出其他决定并将此状态更改为 302 并重定向到登录页面。因此,我无法在我的 UI 上检查状态 401。

进一步通知您:我在 IIS 7 上运行一个 asp.net 4.0 网站(不是MVC)。

我尝试使用以下节点配置我的 web.config:

但我想通过设置 Unauthorized 状态仍然会触发 Formsauthentication 模块。

0 投票
2 回答
1556 浏览

asp.net - 使用 Uploadify 时如何在 .ashx 处理程序中访问 FormsAuthentication 票证?

我有一个 ashx 处理程序,我想检查尝试通过 JSON 调用访问它的用户实际上是否有一个表单身份验证会话。这可能吗?

0 投票
1 回答
1718 浏览

asp.net-mvc-3 - MVC 3 FormsAuthentication 部署时不起作用

我有一个在我的开发环境中运行良好的 MVC 3 应用程序(您之前一定听说过..)我将它部署到免费托管服务http://somee.com进行测试,.NET 框架设置为 4 . 我有一个自定义会员提供程序。我可以注册一个用户,因为我可以在数据库中看到它,但用户永远不会获得身份验证。在注册后或登录时,我总是被重定向到登录页面。我已经完成了 bin 部署,并且在我的 bin 文件夹中有这个 dll:

•System.Web.Mvc
•Microsoft.Web.Infrastructure
•System.Web.Razor
•System.Web.WebPages •System.Web.WebPages.Razor
•System.Web.Helpers

在配置中:...

控制器:

现在没有想法了...