在asp.net mvc中进行身份验证的更好方法

时间:2016-06-10 07:22:55

标签: asp.net-mvc authentication

我知道两种身份验证方式: 第一:使用FormsAuthentication

FormsAuthentication.SetAuthCookie(login.UserName, login.RememberMe);

和另一种方式:使用FormsAuthenticationTicket

  var ticket = new FormsAuthenticationTicket(1, user.Email.ToString(), DateTime.Now, DateTime.Now.AddSeconds(300000), login.RememberMe, "a");
                var ticketEncrypted = FormsAuthentication.Encrypt(ticket);
                var cookie = new HttpCookie("eshop", ticketEncrypted);
                if (login.RememberMe)
                {
                    cookie.Expires = DateTime.Now.AddMinutes(100);
                }
                HttpContext.Response.Cookies.Add(cookie);

我想知道哪一个更好?当我应该使用第一个而当另一个方式时?

1 个答案:

答案 0 :(得分:3)

第一种方法也使用levels.forEach((temp => (label, key) => { var xAxis = (parseInt(label, 10)).toFixed(0), yAxis = parseInt(this.props.dataSet.datasets[0].data[key], 10), arrayAxis =[ xAxis, yAxis]; if (!temp[arrayAxis]) { temp[arrayAxis] = true; data.push(arrayAxis); } })(Object.create(null))); - 按照FormsAuthenticationTicket的源代码进行操作,您可以看到

FormsAuthentication.GetAuthCookie

即。开始看起来类似于你的第二个代码示例

除非您使用的是cookieless auth,否则两者都在做同样的事情,即在浏览器中设置Cookie

如果您想更好地控制cookie的属性,可以使用后者。