最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

.net MVC中使用forms驗(yàn)證詳解

 更新時(shí)間:2017年05月23日 16:45:11   作者:勤奮的小鑫0  
這篇文章主要為大家詳細(xì)介紹了.net MVC中使用forms驗(yàn)證的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

.net MVC中使用forms驗(yàn)證,供大家參考,具體內(nèi)容如下

文件夾的分部是這樣子的

首先在Web.config中設(shè)置

authentication和authorization 節(jié)點(diǎn)

 <system.web>
  <authentication mode="Forms">
   <forms loginUrl="~/Login/Index" timeout="2880" defaultUrl="~/Home/Index"/>
  </authentication>
  <anonymousIdentification enabled="true"/>
  <authorization>
   <deny users="?"/> <!--拒絕匿名訪問(wèn)-->
  </authorization>
  <compilation debug="true" targetFramework="4.5" />
  <httpRuntime targetFramework="4.5" />
  <httpModules>
   <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" />
  </httpModules>
 </system.web>

如果在Login文件夾還有不需要匿名訪問(wèn),或者在LoginController中除了登陸還有方法可以匿名訪問(wèn),

那么我們需要在加上這一個(gè)節(jié)點(diǎn)

 <location path="Login"> <!--這里的意思就是LoginController下的方法可以匿名訪問(wèn)-->
  <system.web>
   <authorization>
    <allow users="*" /> <!--允許匿名訪問(wèn)-->
   </authorization>
  </system.web>
 </location>

登陸的方法貼出一部分代碼,僅供參考

 public bool ValidateUser(LoginVO model)
    {
      string encodePassword = MD5(model.PassWord);//加密
      string sql =
        "select * from User_Users where (UserName=@UserName or JobNumber=@JobNumber) and PassWord=@PassWord";
      var user = Context.Data.Query<UsersPO>(sql,
        new {UserName = model.LoginName, JobNumber = model.LoginName, PassWord = encodePassword}).SingleOrDefault();
      if (user == null) return false;
      DateTime expiration = model.IsRememberLogin //是否記住密碼
        ? DateTime.Now.AddDays(14)
        : DateTime.Now.Add(FormsAuthentication.Timeout);
      var ticket=new FormsAuthenticationTicket(
        1,//指定版本號(hào):可隨意指定
        user.UserName,//登錄用戶名:對(duì)應(yīng) Web.config 中 <allow users="Admin" … /> 的 users 屬性
        DateTime.Now, //發(fā)布時(shí)間
        expiration,//失效時(shí)間
        true,//是否為持久 Cookie
        user.UserId.ToString(), //用戶數(shù)據(jù):可用 ((System.Web.Security.FormsIdentity)(HttpContext.Current.User.Identity)).Ticket.UserData 獲取
        FormsAuthentication.FormsCookiePath //指定 Cookie 為 Web.config 中 <forms path="/" … /> path 屬性,不指定則默認(rèn)為“/”
        );
      var encryptedTicket = FormsAuthentication.Encrypt(ticket);
      if (HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName] != null)
      {
        HttpContext.Current.Request.Cookies.Remove(FormsAuthentication.FormsCookieName);
      }
      var loginIdentify=new HttpCookie(FormsAuthentication.FormsCookieName);
      if (model.IsRememberLogin)
      {
        loginIdentify.Expires = DateTime.Now.AddDays(7);
      }
      loginIdentify.Value = encryptedTicket;
      HttpContext.Current.Response.AppendCookie(loginIdentify);//添加Cookie
      return true;
    }

    /// <summary>
    /// 加密
    /// </summary>
    /// <param name="str"></param>
    /// <param name="encoding"></param>
    /// <param name="toUpper"></param>
    /// <param name="isReverse"></param>
    /// <param name="count"></param>
    /// <returns></returns>
    private string MD5(string str, Encoding encoding=null, int count = 1)
    {
      if (encoding == null)
      {
        encoding = Encoding.Default;
      }
      var bytes = new MD5CryptoServiceProvider().ComputeHash(encoding.GetBytes(str));
      var md5 = string.Empty;
      for (int i = 0; i < bytes.Length; i++)
      {
        md5 += bytes[i].ToString("x").PadLeft(2, '0');
      }     
      if (count <= 1) { return md5; }
      return MD5(md5, encoding, --count);
    }

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • asp.net發(fā)郵件示例

    asp.net發(fā)郵件示例

    這篇文章主要介紹了asp.net發(fā)郵件示例,需要的朋友可以參考下
    2014-04-04
  • 子窗口給父窗口賦值實(shí)現(xiàn)思路及案例演示

    子窗口給父窗口賦值實(shí)現(xiàn)思路及案例演示

    今天學(xué)習(xí)一下javascript實(shí)現(xiàn)從父窗口打開(kāi)一個(gè)子窗口,在子窗口處理一些結(jié)果之后,把結(jié)果賦值于父窗口的文本框內(nèi),接下來(lái)介紹實(shí)現(xiàn)方法,感興趣的朋友可以了解下,希望本文對(duì)你有所幫助
    2013-01-01
  • asp.net(C#)遍歷memcached緩存對(duì)象

    asp.net(C#)遍歷memcached緩存對(duì)象

    出于性能考慮,memcached沒(méi)有提供遍歷功能,不過(guò)我們可以通過(guò)以下兩個(gè)stats命令得到所有的緩存對(duì)象。
    2010-03-03
  • asp.net 時(shí)間類 一周的周一和周末的日期

    asp.net 時(shí)間類 一周的周一和周末的日期

    asp.net中時(shí)間類——得到一周的周一和周末的日期
    2008-12-12
  • .Net?Core依賴注入IOC和DI介紹

    .Net?Core依賴注入IOC和DI介紹

    這篇文章介紹了.Net?Core依賴注入IOC和DI,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-01-01
  • .net微信開(kāi)發(fā) 如何獲取AccessToken

    .net微信開(kāi)發(fā) 如何獲取AccessToken

    這篇文章主要為大家詳細(xì)介紹了微信開(kāi)發(fā)中AccessToken的獲取方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • asp.net 身份驗(yàn)證(最簡(jiǎn)單篇)

    asp.net 身份驗(yàn)證(最簡(jiǎn)單篇)

    在創(chuàng)建網(wǎng)站中,常常會(huì)使用到身份驗(yàn)證。asp.net中內(nèi)置了幾種身份驗(yàn)證的方式,如Windows、Froms、Passport等。這幾種身份驗(yàn)證的方式各有不同。
    2009-05-05
  • 深入Lumisoft.NET組件開(kāi)發(fā)碰到亂碼等問(wèn)題的解決方法

    深入Lumisoft.NET組件開(kāi)發(fā)碰到亂碼等問(wèn)題的解決方法

    本篇文章介紹了,在Lumisoft.NET組件開(kāi)發(fā)中碰到亂碼等一些問(wèn)題的解決方法。需要的朋友參考下
    2013-05-05
  • asp.net jquery無(wú)刷新分頁(yè)插件(jquery.pagination.js)

    asp.net jquery無(wú)刷新分頁(yè)插件(jquery.pagination.js)

    采用Jquery無(wú)刷新分頁(yè)插件jquery.pagination.js 實(shí)現(xiàn)無(wú)刷新分頁(yè)效果:本示例Handler中采用StringBuilder的append方法追加HTML,小數(shù)據(jù)量可以,但是大數(shù)據(jù)或是布局常變,建議返回JSON格式的數(shù)據(jù),性能和靈活性更好,望使用者好好把握
    2013-01-01
  • .Net Core中使用Grpc的方法

    .Net Core中使用Grpc的方法

    這篇文章主要介紹了.Net Core中使用Grpc的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10

最新評(píng)論

营山县| 峨眉山市| 阿拉善盟| 区。| 珲春市| 卓资县| 彭阳县| 中江县| 顺平县| 新乡县| 榆树市| 五莲县| 河北区| 太仓市| 旌德县| 河曲县| 鞍山市| 廊坊市| 安泽县| 南涧| 富裕县| 北票市| 红安县| 金堂县| 许昌县| 体育| 阿瓦提县| 临海市| 绥德县| 山阴县| 登封市| 平顺县| 台前县| 驻马店市| 海原县| 阜平县| 连城县| 韶关市| 城口县| 叙永县| 陆川县|