这两种身份验证票的制作方式有什么区别?

时间:2018-01-18 07:57:45

标签: asp.net asp.net-mvc forms-authentication

我在MVC应用程序中遇到了这部分代码

  var authTicket = new FormsAuthenticationTicket(
                                                           1,                             // version
                                                           oModel.UserID,                      // user name
                                                           DateTime.Now,                  // created
                                                           DateTime.Now.AddDays(30),   // expires
                                                           oModel.RememberMe,                   // persistent?
                                                           "Jt_AutoLogin"
                                                           );
                        string encryptedTicket = FormsAuthentication.Encrypt(authTicket);
                        var authCookie = new HttpCookie("Jt_AutoLogin", encryptedTicket);
                        if (authTicket.IsPersistent)
                        {
                            authCookie.Expires = authTicket.Expiration;
                        }
                        System.Web.HttpContext.Current.Response.Cookies.Add(authCookie);

并且有这个代码

FormsAuthentication.SetAuthCookie(oModel.UserID, oModel.RememberMe);

据我所知,SetAuthCookie()方法生成经过身份验证的票证并将其添加到cookie集合中。

但是第一种方式呢?

如果他们确实做了同样的事情,那么有什么区别?

1 个答案:

答案 0 :(得分:1)

他们都工作

SetAuthCookie方法将表单身份验证票证添加到Cookie集合或URL

第一个

var authTicket = new FormsAuthenticationTicket

允许您向其添加更多用户定义数据,如过期等。

https://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.setauthcookie(v=vs.110).aspx

https://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication(v=vs.110).aspx