问题标签 [formsauthenticationticket]

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 回答
2135 浏览

.net - FormsAuthenticationTicket 能否在应用程序池回收后继续存在?

我正在寻找一种解决方案,我们可以制作一个有效期很长的 FormsAuthenticationTicket(和相应的 cookie)。这可以通过设置高值或使用滑动过期来实现,但是当网站的应用程序池被回收时,FormsAuthenticationTicket 消失(我认为),cookie 变得无效并要求用户再次登录。

有没有办法解决?

0 投票
2 回答
13632 浏览

asp.net - ASP.NET:身份验证过期时如何获取 FormsAuthenticationTicket 对象

我正在尝试检查用户当前 FormsAuthenticationTicket 的 Expired 属性,以查看身份验证期限是否已过期。但是当期限到期时,我永远无法获得足够的信息来创建要检查的票。我试过这个:

但是当认证期限到期时,用户为空。所以这行不通。我试过这个:

但是当认证期限到期时,Forms Cookie 就消失了,这意味着 authCookie 将为空。所以这行不通。

身份验证期已过时,有什么方法可以实际获取FormsAuthenticationTicket 对象?必须有,因为对象中有一个“过期”属性。我错过了什么?

谢谢。

0 投票
2 回答
1673 浏览

asp.net-mvc - 在每个请求 asp.net mvc 上拥有基于角色的自定义身份验证查询数据库的正确方法

这可能是一个有点无知的问题,但我是 mvc 新手,所以很抱歉!

我研究了书呆子晚餐身份验证模型,但在我的应用程序中,我有一个复杂的基于角色的身份验证。所以我要做的是:

在登录时,我使用 FormsAuth 验证用户名/密码,然后创建 cookie。

这里的问题是每次创建自定义身份时,我都必须在数据库中查询用户角色。有没有解决这个问题的正确方法,或者我是否在做正确的事情来查询每个传入请求的数据库?我应该将角色列表保存在 cookie 中吗?

我也不太了解表单身份验证如何处理身份验证的整个生命周期?我使用与IFormsAuthentication书呆子晚餐用户相同的设计模式,并且在登录期间我调用FormsAuth.SignIn()它依次调用FormsAuthentication.SetAuthCookie,它何时设法调用该membershipservice.validateuser()方法?此外,如果已设置身份验证 cookie,为什么 nerd Dinner 会创建票证,然后将其添加到请求中,然后在期间读取它PostAuthenticationRequest以检查它是哪个用户。票务操作是否像会话?

谢谢!圣诞节快乐!


更新这个链接让我对表单身份验证票有了更好的理解。

0 投票
2 回答
1243 浏览

asp.net - asp.net 使用 requireSSL 并且仍然能够检查用户是否在非 SSL 页面上进行了身份验证

我有一个混合 SSL 的 web 应用程序(asp.net 3.5)。所有与帐户相关的页面均通过 SSL 提供。大多数其他页面都是通过非 SSL 交付的。为了在 HTTPS 和 HTTP 之间自动切换,我使用了这个组件。最近有一个关于在非安全 Wifi 网络上劫持用户会话的能力的新闻。这应该可以通过捕获通过非 SSL 连接传输的 Cookie 来实现。

这促使我检查了我在此 Web 应用程序中的安全选择。我(再次)从 MSDN 中获取了这篇文章,并在我的 Formsauthentication 上尝试了requireSSL=true属性。在我启动 Web 应用程序之前,我意识到我的 User.Identity 在非 SSL 页面上将为空,因为包含此信息的 cookie 不会从 Web 浏览器发送或发送到 Web 浏览器。

我需要一种通过 SSL 连接对用户进行身份验证的机制......并记住此身份验证信息,即使在非 SSL 页面上也是如此。

在搜索 SO 时,我发现了这篇文章。在我看来,这是一个很好的解决方案。但是,我想知道在Sessionstate中存储登录信息是否可以找到解决方案?我正在考虑在 Global.asax 中捕获 Application_AuthenticateRequest。检查连接是否安全并检查 authcookie 或 Session。我还不知道我将如何实现这一点。也许你可以和我一起思考这个?

0 投票
1 回答
807 浏览

layout - 在 Layout 页面上查看自定义 Userdata 的模型

我的用户已通过身份验证,但在 FormsAuthenticationTicket 和 cookie 中存储了额外信息。

创建 Cookie 等

所有这一切都很好。

我正在使用 mvc 3 和 Razor

我有一个 foo.Layout.cshtml,它在页面顶部显示 Fullname / ContactNumber 等。

我可以在 foo.Layout.cshtml 的顶部包含代码来提取显示这些值:

这意味着我不必在我的控制器中包含此代码,但老实说我不喜欢它,并且在我的实际应用程序(不同的值)中,我需要大多数视图中的值,包括布局。

所以我一直在讨论在我的控制器中包含代码:

创建一个视图模型:

创建控制器

也许其中一些可以放在控制器工厂内。

我只是在寻找关于其他人如何接近这个非常常见的设置的讨论或想法。

我的实际任务是通过布局在每个页面的顶部显示用户全名,并在正在填写然后提交的各种表单的底部显示全名(和其他数据)。回发后,将从 cookie 中重新读取全名并将其发送到与其他表单字段一起存储。这有意义吗,真的是那个时候吗:-/

0 投票
1 回答
10300 浏览

c# - FormsAuthenticationTicket.expiration v web.config 值超时

这是一个 MVC2 网站,我遇到了 FormsAuthentication 票证的问题。用户超时 30 分钟后无法重新登录。在测试期间,DateTime.Now.AddMinutes(30) 值设置为 5000,一切正常,但现在已更改为 30,这就是问题开始的时候

从 cookie 创建

Web.config 文件

工单创建中的过期值是否需要 >= web.config 值?

0 投票
0 回答
963 浏览

wcf - 将 cookie 传递给 wcf 服务

我有一堆期望 auth cookie 的 wcf webhttp (rest) 服务。问题是 - 如何将 formsauth 票证传递给 wcf 服务?流动身份验证适用于通过浏览器获取请求(应该如此),但我不确定如何在使用 httpclient 或 webchannelfactory 的调用期间设置 cookie。至此,身份验证完成,cookie 可用。在通过 HttpClient 调用服务时,我不确定在哪里插入 cookie。

我还尝试按照以下网址使用 webchannelfactory - http://zamd.net/2009/03/05/flowing-forms-authentication-cookie-to-wcf/

但是,var identity = Thread.CurrentPrincipal.Identity as ClientFormsIdentity;即使 Thread.CurrentPrincipal.Identity 是有效的 FormsIdentity,也会返回 null。任何建议都会很有帮助。

0 投票
2 回答
763 浏览

asp.net - FormsAuthenticationTicket 超时中途发布的新会话 cookie

我在我的 asp.net 4.0 应用程序(从 .NET 1.1 升级)中使用 Forms 身份验证。我显式地创建了 FormsAuthenticationTicket 对象,然后对其进行加密(使用 FormsAuthentication 方法),并将其以 cookie 的形式发送给客户端。我使用 FormsAuthentiation.RenewTicketIfExpired() 来设置身份验证 cookie 的滑动到期。

我可以使用 Fiddler 找出在 FormsAuthenticationTicket 超时中途发布的新会话 cookie。

如果表单验证超时 = 2 分钟,会话超时 = 20 分钟

IE

hh:mm:ss

10:00:00 用户登录

10:01:10 回发发生

然后将重新创建一个新会话并注销。但我将会话设置为每 20 分钟超时一次。我尝试了不同的表单身份验证超时值,并且总是在超时的中途创建一个新会话。

我需要将表单验证超时设置为一个非常大的值以避免这种情况发生。

从.NET 1.1升级之前没有这个问题

有人知道为什么吗?这是在 asp.net 4.0 中处理滑动到期的错误吗?

0 投票
1 回答
135 浏览

asp.net - 将用户数据存储在内存中

我对使用 Forms Authentication 还很陌生,我正试图弄清楚这一切是如何工作的。基本上,我想做的是存储一些与 FormsAuthentication 票证关联的用户数据(从我的 ldap 服务器返回的数据);但是,我不想将这些数据实际存储在 cookie 中,因为它可能是相当大量的数据。是否有可能以某种方式将此信息存储在服务器的内存中,但将其与票证紧密绑定,以便如果用户超时或注销,数据也会被破坏。我意识到我可以使用会话变量来执行此操作,但这似乎很尴尬,因为如果用户注销,我必须手动清理会话变量。这是可能的还是这样做有意义?

0 投票
2 回答
3939 浏览

c# - 角色身份验证在 asp.net 中不起作用

我正在使用下面的代码来访问基于用户身份验证的页面库

}

如果登录详细信息正确,用户将被定向到 ClientAccount.aspx,但我希望只有当他/她的角色设置为管理员时才会发生这种情况,如下面的 web.config 文件所示。

我该如何做到这一点?

我猜 web.config 文件没有查看 cookie 来进行授权,所以我在那里做错了。