asp.net-mvc – ASP.NET MVC RememberMe
搜索很多,我没有得到任何答案,最后我不得不回到你.下面我正在详细解释我的问题.太久了,所以请不要放弃阅读.我用简单的语言解释了我的问题.
我一直在开发一个asp.net mvc项目. 我只需要这个: 我需要用户登录到Web应用程序.在登录期间,他们可以通过记住我或没有登录. 注意:我已经成功地实现了上述功能,而不使用标准的asp.net角色和成员资格,为用户创建自己的talbes,并对我的数据库表进行身份验证,在我的其他项目中设置cookie和会话.但是对于这个项目,我们从一开始就使用标准asp.net角色和成员资格.我们以为它会工作,一切都是在测试之后建立起来的.现在我们不能用标准的asp.net角色和成员身份替换现有的功能,并且使用我自己的用户表和所有的东西,你明白我的意思. 或者有一些标准asp.net角色和会员功能的错误,或者我有标准asp.net角色和成员资格错误的整个概念.我已经说了我想要的东西.我觉得这很简单合理. 我做了什么 >登录表单用用户名,密码和记住我的字段. FormsAuth.SignIn(userName,rememberMe); public void SignIn(string userName,bool createPersistentCookie) 现在问题如下: 我在上面已经说过“我只需要这个”. 我在这个主题上搜索互联网很多,但我无法得到解决方案.在Scott Gu所写的博客文章(http://weblogs.asp.net/scottgu/archive/2005/11/08/430011.aspx)中完全相同的话题.用户在他们的评论中抱怨同样的事情,Scott先生没有提供简单的解决方案. 我在以下地方阅读: 我想这是很多用户的问题.正如Scott Gu先生的博客帖子所示. 您的帮助将非常感激. 解决方法
当您选择RememberMe选项时,您要做的是具有不同的超时时间.不幸的是,SetAuthCookie方法不允许您手动设置过期,因此您必须自己做.
那么问题是怎么做呢? ASP.NET MVC使用System.Web.Security的FormsAuthentication类来做到这一点,因为如果您还要支持配置设置和无Cookie浏览和SSL,这不是微不足道的,但是我认为如果你这样做: int timeout = rememberMe ? 525600 : 30; // Timeout in minutes,525600 = 365 days. var ticket = new FormsAuthenticationTicket(userName,rememberMe,timeout); string encrypted = FormsAuthentication.Encrypt(ticket); var cookie = new HttpCookie(FormsAuthentication.FormsCookieName,encrypted); cookie.Expires = System.DateTime.Now.AddMinutes(timeout);// Not my line cookie.HttpOnly = true; // cookie not available in javascript. Response.Cookies.Add(cookie); 你会得到你所需要的基本版本. 注意:我没有测试这个代码. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 在后面的代码中无法识别嵌套的Repeater
- ASP.Net/web.config – “条目’x’已经输入”?
- asp.net – 使用WebAPI时重新验证模型(TryValidateModel等效
- asp.net-core – 如何将ASP.NET 5从Beta6升级到Beta7
- asp.net – dbo.TempGetStateItemExclusive3重复调用
- asp.net-mvc – 如何链接到将数组作为参数(RedirectToActio
- 如何在ASP.Net MVC标记中克服我对<%%>的恐惧?
- asp.net-mvc – ASP.NET MVC和EF代码第一内存使用
- IBatis.Net 老技术新研究
- asp.net – 在localhost中将IIS设置为Web开发服务器