加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 使用哪种FormsAuthentication方法?

发布时间:2020-12-16 10:01:58 所属栏目:asp.Net 来源:网络整理
导读:我试图在ASP.NET MVC 4应用程序中创建自己的FormsAuthentication,我已经看到了创建我的authcookie的两种不同方式,我想知道其中一个是否有任何缺点或者是否可以安全地使用它们并且在那里在我决定使用巫婆之前,我应该知道的任何其他差异? 第一个是 FormsAuthe
我试图在ASP.NET MVC 4应用程序中创建自己的FormsAuthentication,我已经看到了创建我的authcookie的两种不同方式,我想知道其中一个是否有任何缺点或者是否可以安全地使用它们并且在那里在我决定使用巫婆之前,我应该知道的任何其他差异?

第一个是

FormsAuthentication.SetAuthCookie(userName,rememberMe);

另一个有点长

var authTicket = new FormsAuthenticationTicket(
            1,userName,DateTime.Now,DateTime.Now.AddMinutes(30),rememberMe,"Users"
            );
        var encryptedTicket = FormsAuthentication.Encrypt(authTicket);

        var authCookie = new HttpCookie(FormsAuthentication.FormsCookieName,encryptedTicket);
        HttpContext.Current.Response.Cookies.Add(authCookie);

请赐教我这个决定

解决方法

实际上,第一种方法调用第二种方法.我已经采用了SetAuthCookie的来源来展示这一点,但删除了一些线以保持相关性:

public static void SetAuthCookie(string userName,bool createPersistentCookie)
{
    FormsAuthentication.Initialize();
    FormsAuthentication.SetAuthCookie(userName,createPersistentCookie,FormsAuthentication.FormsCookiePath);
}

public static void SetAuthCookie(string userName,bool createPersistentCookie,string strCookiePath)
{
    (...)
    HttpCookie authCookie = FormsAuthentication.GetAuthCookie(userName,flag ? "/" : strCookiePath,!flag);
    (...)
    HttpContext.Current.Response.Cookies.Add(authCookie);
    (...)
}

private static HttpCookie GetAuthCookie(string userName,string strCookiePath,bool hexEncodedTicket)
{
    (...)
    DateTime utcNow = DateTime.UtcNow;
    DateTime expirationUtc = utcNow.AddMinutes((double) FormsAuthentication._Timeout);
    FormsAuthenticationTicket ticket = FormsAuthenticationTicket.FromUtc(2,utcNow,expirationUtc,string.Empty,strCookiePath);
    string str = FormsAuthentication.Encrypt(ticket,hexEncodedTicket);
    (...)
    HttpCookie httpCookie = new HttpCookie(FormsAuthentication.FormsCookieName,str);
    (...)
    return httpCookie;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读