我的登录代码如下:
var time = DateTime.Now.AddDays(14);
FormsAuthenticationTicket Ticket = new FormsAuthenticationTicket(1, "1", DateTime.Now, time, true, "normal", FormsAuthentication.FormsCookiePath);
string HashTicket = FormsAuthentication.Encrypt(Ticket);
HttpCookie UserCookie = new HttpCookie(FormsAuthentication.FormsCookieName, HashTicket);
UserCookie.Expires = Ticket.Expiration;
UserCookie.Path = Ticket.CookiePath;
Context.Response.Cookies.Add(UserCookie);
不能实现两周免登录,但我现在打开页面,显示未登录,我用插件查看cookie却是这样的:
下面的过期时间显示的是4月10号,这个是对的,但不知道为什么
Request.IsAuthenticated
却是false
Request.IsAuthenticated是根据web.config中的cookie设置进行判断的,比如:
<authentication mode="Forms">
<forms name="cookieName" loginUrl="login.aspx" protection="All" timeout="43200" path="/" />
</authentication>
使用Forms验证,登录后写cookie的代码很简单:
FormsAuthentication.SetAuthCookie(username, true);
这里的cookie设置也是由web.config中的设置决定的。
上面代码中对cookie的过期时间进行了设置,那么在web.config中要不要再定义timeout呢,有没有冲突
@菜鸟程序猿: 两者选一
登录过么?
前几天是登录过
webconfig 中配置了沒有呢
要怎么配置?
@菜鸟程序猿: <authentication mode="Forms">
<!-- RSU: 在Production環境下記得需要把 requireSSL設定成true -->
<forms loginUrl="~/Auth/Login.aspx" name=".SFXWEB" defaultUrl="Main.aspx" protection="All" timeout="60" path="/" requireSSL="false" slidingExpiration="true">
</forms>
</authentication>
@無限遐想: 上面代码中对cookie的过期时间进行了设置,那么在web.config中要不要再定义timeout呢,有没有冲突