Rumah pembangunan bahagian belakang Tutorial C#.Net .net MVC中forms验证的使用实例详解

.net MVC中forms验证的使用实例详解

Aug 14, 2017 am 11:24 AM
.net Contoh

这篇文章主要为大家详细介绍了.net MVC中使用forms验证的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

.net MVC中使用forms验证,供大家参考,具体内容如下

文件夹的分部是这样子的

首先在Web.config中设置

authentication和authorization 节点


 <system.web>
  <authentication mode="Forms">
   <forms loginUrl="~/Login/Index" timeout="2880" defaultUrl="~/Home/Index"/>
  </authentication>
  <anonymousIdentification enabled="true"/>
  <authorization>
   <deny users="?"/> <!--拒绝匿名访问-->
  </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>
Salin selepas log masuk

如果在Login文件夹还有不需要匿名访问,或者在LoginController中除了登陆还有方法可以匿名访问,

那么我们需要在加上这一个节点


 <location path="Login"> <!--这里的意思就是LoginController下的方法可以匿名访问-->
  <system.web>
   <authorization>
    <allow users="*" /> <!--允许匿名访问-->
   </authorization>
  </system.web>
 </location>
Salin selepas log masuk

登陆的方法贴出一部分代码,仅供参考


 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,//指定版本号:可随意指定
        user.UserName,//登录用户名:对应 Web.config 中 <allow users="Admin" … /> 的 users 属性
        DateTime.Now, //发布时间
        expiration,//失效时间
        true,//是否为持久 Cookie
        user.UserId.ToString(), //用户数据:可用 ((System.Web.Security.FormsIdentity)(HttpContext.Current.User.Identity)).Ticket.UserData 获取
        FormsAuthentication.FormsCookiePath //指定 Cookie 为 Web.config 中 <forms path="/" … /> path 属性,不指定则默认为“/”
        );
      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, &#39;0&#39;);
      }     
      if (count <= 1) { return md5; }
      return MD5(md5, encoding, --count);
    }
Salin selepas log masuk

Atas ialah kandungan terperinci .net MVC中forms验证的使用实例详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Contoh SVM dalam Python Contoh SVM dalam Python Jun 11, 2023 pm 08:42 PM

Mesin Vektor Sokongan (SVM) dalam Python ialah algoritma pembelajaran diselia yang berkuasa yang boleh digunakan untuk menyelesaikan masalah klasifikasi dan regresi. SVM berprestasi baik apabila menangani data berdimensi tinggi dan masalah bukan linear, dan digunakan secara meluas dalam perlombongan data, klasifikasi imej, klasifikasi teks, bioinformatik dan bidang lain. Dalam artikel ini, kami akan memperkenalkan contoh penggunaan SVM untuk pengelasan dalam Python. Kami akan menggunakan model SVM daripada perpustakaan scikit-learn

Apakah prospek pekerjaan C#? Apakah prospek pekerjaan C#? Oct 19, 2023 am 11:02 AM

Sama ada anda seorang pemula atau profesional yang berpengalaman, menguasai C# akan membuka jalan untuk kerjaya anda.

Kongsi beberapa rangka kerja projek berkaitan AI dan LLM sumber terbuka .NET Kongsi beberapa rangka kerja projek berkaitan AI dan LLM sumber terbuka .NET May 06, 2024 pm 04:43 PM

Perkembangan teknologi kecerdasan buatan (AI) sedang giat dijalankan hari ini, dan ia telah menunjukkan potensi dan pengaruh yang besar dalam pelbagai bidang. Hari ini Dayao akan berkongsi dengan anda 4 rangka kerja projek berkaitan LLM model AI sumber terbuka .NET, dengan harapan dapat memberi anda sedikit rujukan. https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel ialah kit pembangunan perisian sumber terbuka (SDK) yang direka untuk menyepadukan model bahasa besar (LLM) seperti OpenAI, Azure

Contoh Permulaan VUE3: Membuat Pemain Video Mudah Contoh Permulaan VUE3: Membuat Pemain Video Mudah Jun 15, 2023 pm 09:42 PM

Apabila rangka kerja hadapan generasi baharu terus muncul, VUE3 digemari sebagai rangka kerja bahagian hadapan yang pantas, fleksibel dan mudah digunakan. Seterusnya, mari kita pelajari asas VUE3 dan buat pemain video mudah. 1. Pasang VUE3 Mula-mula, kita perlu memasang VUE3 secara setempat. Buka alat baris arahan dan laksanakan arahan berikut: npminstallvue@next Kemudian, cipta fail HTML baharu dan perkenalkan VUE3: &lt;!doctypehtml&gt;

Ketahui contoh amalan terbaik penukaran penunjuk di Golang Ketahui contoh amalan terbaik penukaran penunjuk di Golang Feb 24, 2024 pm 03:51 PM

Golang ialah bahasa pengaturcaraan yang berkuasa dan cekap yang boleh digunakan untuk membangunkan pelbagai aplikasi dan perkhidmatan. Di Golang, penunjuk ialah konsep yang sangat penting, yang boleh membantu kami mengendalikan data dengan lebih fleksibel dan cekap. Penukaran penunjuk merujuk kepada proses operasi penunjuk antara jenis yang berbeza Artikel ini akan menggunakan contoh khusus untuk mempelajari amalan terbaik penukaran penunjuk di Golang. 1. Konsep asas Di Golang, setiap pembolehubah mempunyai alamat, dan alamat adalah lokasi pembolehubah dalam ingatan.

Contoh algoritma VAE dalam Python Contoh algoritma VAE dalam Python Jun 11, 2023 pm 07:58 PM

VAE ialah model generatif, nama penuhnya ialah VariationalAutoencoder, yang diterjemahkan ke dalam bahasa Cina sebagai autoenkoder variasi. Ia adalah algoritma pembelajaran tanpa pengawasan yang boleh digunakan untuk menjana data baharu, seperti imej, audio, teks, dsb. Berbanding dengan pengekod auto biasa, VAE lebih fleksibel dan berkuasa serta boleh menjana data yang lebih kompleks dan realistik. Python adalah salah satu bahasa pengaturcaraan yang paling banyak digunakan dan salah satu alat utama untuk pembelajaran mendalam. Dalam Python, terdapat banyak pembelajaran mesin yang sangat baik dan mendalam

Hubungan antara bilangan kejadian Oracle dan prestasi pangkalan data Hubungan antara bilangan kejadian Oracle dan prestasi pangkalan data Mar 08, 2024 am 09:27 AM

Hubungan antara bilangan contoh Oracle dan prestasi pangkalan data Pangkalan data Oracle ialah salah satu sistem pengurusan pangkalan data hubungan yang terkenal dalam industri dan digunakan secara meluas dalam penyimpanan dan pengurusan data peringkat perusahaan. Dalam pangkalan data Oracle, contoh adalah konsep yang sangat penting. Contoh merujuk kepada persekitaran berjalan pangkalan data Oracle dalam ingatan Setiap contoh mempunyai struktur memori dan proses latar belakang yang bebas, yang digunakan untuk memproses permintaan pengguna dan mengurus operasi pangkalan data. Bilangan kejadian mempunyai kesan penting terhadap prestasi dan kestabilan pangkalan data Oracle.

Contoh pembangunan perangkak web mudah PHP Contoh pembangunan perangkak web mudah PHP Jun 13, 2023 pm 06:54 PM

Dengan perkembangan pesat Internet, data telah menjadi salah satu sumber terpenting dalam era maklumat hari ini. Sebagai teknologi yang memperoleh dan memproses data rangkaian secara automatik, perangkak web semakin menarik perhatian dan aplikasi. Artikel ini akan memperkenalkan cara menggunakan PHP untuk membangunkan perangkak web yang ringkas dan merealisasikan fungsi mendapatkan data rangkaian secara automatik. 1. Gambaran Keseluruhan Web Crawler Web crawler ialah teknologi yang secara automatik memperoleh dan memproses sumber rangkaian Proses kerja utamanya adalah untuk mensimulasikan tingkah laku penyemak imbas, mengakses alamat URL yang ditentukan secara automatik dan mengekstrak semua maklumat.

See all articles