首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >asp.net“记住我”不再使用表单身份验证了

asp.net“记住我”不再使用表单身份验证了
EN

Stack Overflow用户
提问于 2011-01-18 19:15:03
回答 3查看 3.5K关注 0票数 8

我有两个网站的自写会员提供者,是在同一服务器上的同一服务器,在不同的Web应用程序和不同的应用程序池的主机。

以前我有一个问题,那就是我不能同时登录两个网站。多亏了雷米的帖子,现在,我不得不将name-attribute添加到forms元素中。

但是现在我遇到了一个问题,即asp登录控件的me me选项停止工作。用户在正常会话超时后被注销。

web.config文件中的身份验证-属性如下所示:

代码语言:javascript
复制
<authentication mode="Forms" >
  <forms loginUrl="~/UserMgmt/Login.aspx" timeout="400000" slidingExpiration="true" name="NameOfTheSite"/>
</authentication>

我还将表单的cookie名称设置为不同的名称。

还有什么是我必须添加的,这样记忆-我的功能才能工作吗?

更新

我观察到,如果禁用表单身份验证-cookie的加密和验证,问题就解决了。如果我要么激活加密、验证或两者兼而有之,问题就新出现了。

我也知道,它独立于会话-cookie名称(它们甚至可以是相同的)。也许这些信息能帮人弄清楚到底怎么回事?

更新1

感谢贾森·凯里为解决这个问题所做的努力。我永远也找不到它。同时,我在msdn中找到了相应的信息。在如何:在MachineKey 2.0中配置ASP.NET中,编写了“网络场部署注意事项”一节中的内容:

如果要将应用程序与同一服务器上的其他应用程序隔离开来,请将<machineKey>放在场中每个服务器上的每个应用程序的Web.config文件中。确保为每个应用程序使用单独的键值,但在场中的所有服务器上复制每个应用程序的密钥。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-28 22:01:12

问题可能是,每次启动辅助进程时,都会自动生成验证键。cookie是加密的,但当您返回时,将使用一个新的服务器端密钥,因此您的cookie无法解密。

查看machineKey节http://msdn.microsoft.com/en-us/library/ff649308.aspx

下面是一些将为您生成machineKey部分的http://www.qualitydata.com/products/aspnet-membership/help/configuration/no-machinekey.aspx

票数 9
EN

Stack Overflow用户

发布于 2011-01-28 07:04:57

尝试设置域名,以确保在所有情况下都正确设置了记忆的cookie。

代码语言:javascript
复制
<forms  path="/" domain="nameof.com" ...the rest
票数 2
EN

Stack Overflow用户

发布于 2011-01-28 22:39:28

cookie超时也受到IIS的限制,默认为20分钟左右。要改变这一点:

  1. 打开IIS管理器。
  2. 右键单击站点并选择属性。
  3. 选择ASP.NET选项卡,然后单击。
  4. 选择“身份验证”选项卡。
  5. 选择“启用滑动过期”。
  6. 将Cookie超时设置为更长的值。若要设置为30天,请输入30.00:00:00。
  7. 单击“确定”并退出IIS管理器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4728036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档