Após a conclusão API para verificar a senha do AD Mais tarde,Então tente escrever a parte para alterar a senha,Mesmo que eu tenha tropeçado, finalmente terminei.。Desta vez vou compartilhar como escrever três pacotes diferentes.,E o título mencionará “Altere sua senha do AD” É porque descobri durante o processo de escrita,Alguns métodos requerem permissões de um administrador de domínio para executar,Portanto, o escopo deste artigo será limitado apenas ao uso da conta e senha do próprio usuário.,Você pode concluir a ação de alterar a senha。
Recentemente, tentei escrever um programa de modificação de senha de conta do AD por meio do ASP.NET Core.,Em termos de arquitetura, geralmente existe uma API Web para autenticação AD e modificação de senha.,Finalmente, escreva um aplicativo de desktop,Permita que os próprios usuários modifiquem。O que é concluído desta vez é a API Web para verificação de conta e senha.,O programa é o seguinte:
Anteriormente, colegas relataram que a API QR Code do Google às vezes não funcionava.,Depois de verificar as informações relevantes,Tive a ideia de aprender C# escrevendo esta API,Passei algum tempo explorando,Eu realmente tirei isso de você。A função desta API é inserir um valor na URL,Você pode gerar imagens QRCode diretamente no navegador,O seguinte será escrito pela primeira vez no ASP.NET Core / Explicado da perspectiva de um novato em C#。
<%# Eval("SDate", "{0:yyyy/MM/dd}") %> // 0: 表示定義整個括號裡面的第 0 個變數要採用此日期格式。 // 以下為兩個變數的範例。 string s = String.Format("At {0}, the temperature is {1}°C.", DateTime.Now, 20.4); Console.WriteLine(s); // Output similar to: 'At 4/10/2015 9:29:41 AM, the temperature is 20.4°C.'
Referência [link]
- asp.net – como aplicar um formato específico de data usando eval? – Stack Overflow
- c # – O que faz o 0 dentro “{0:MM dd aaaa}” Faz? – Stack Overflow
- Método String.Format (Sistema) | Microsoft Docs
- Strings de formato de data e hora personalizadas | Microsoft Docs
- Strings de formato de data e hora padrão | Microsoft Docs
//MVC3開始,新增Razer語法,不同於先前的<%...%>括號語法,使用At Sgin(@)敘述程式碼片段。 //在Razer檢視中,使用@*...*@進行程式註解。 //在程式碼中,要輸出內容,要加@或@(...) //在html標籤中,要輸出內容,要加@ //在程式碼中,要輸出純文字,要加@:
@if(true) { String strPrint = "這是測試輸出文字"; @strPrint<br/> <span>strPring</span><br /> <span>@strPrint</span><br /> } @{string strl = "測試";} @(strl)輸出文字<br /> @{ string strHtml1 = "<ul><li>項目一</li></ul>";} @Html.Raw(strHtml1)<br />
//在測試Controller與View時,如果因為設中斷點導致網頁顯示不完整而無法進行測試, //可以試著點選"跳離函式(Shift+F11)",讓頁面完整顯示,以進行測試。 //先於Model設計好欄位變數等, //再於Controller設定執行時,透過剛設計的Model樣板,進行各個變數的處理(遞交資料) //如從網頁欄位A讀取資料到變數X,再把X送到網頁的欄位B //最後於View設計各欄位的顯示情形
//Controllers\HomeController.cs public ActionResult Index() { TempData["Message"] = "修改此範本即可開始著手進行您的ASP.NET MVC應用程式。"; return View(); }
<!--Views\Home\Index.cshtml--> <h2>@TempData["Message"]</h2>
//資料模型一對多關聯 public class Guestbook { public int Id { get; set; } public string Content { get; set; } public DateTime CreateTime { get; set; } public Member Member { get; set; } } public class Member { [Key] public string Username { get; set; } public string Password { get; set; } public string Name { get; set; } public string Email { get; set; } public ICollection<Guestbook> Guestbook { get; set; } } //Code First 就是在Model定義好各欄位後,其他的Controller、View都會自動幫你產生, //很神奇的功能,讓你專注在寫Model的部分就好
public class Index { [DisplayName("必選修")] //上面中括號這項非必要 public string Required { get; set; } /*name只能有一個,所以這兩段先註解掉 [Required(ErrorMessage = "學生姓名不得為空白")] public string Name { get; set; } [StringLength(10, ErrorMessage = "學生姓名不得超過10字元")] public string Name { get; set; } */ [StringLength(10, ErrorMessage = "學生姓名必須介於2-10字元", MinimumLength = 2)] public string Name { get; set; } [Range(0, 100, ErrorMessage = "得分必須介於0~100之間")] public int Point { get; set; } [System.Web.Mvc.Compare("re_password", ErrorMessage = "兩次密碼輸入不一致")] //上面沒有using System.Web.Mvc的話,這邊就要打完整的命名空間 public string Password { get; set; } public string Re_password { get; set; } [RegularExpression( @"^[0-9]{2,4}-?[0-9]{3,4}-?[0-9]{-4}$", ErrorMessage = "請輸入正確的電話號碼")] public string Phone { get; set; } [EmailAddress(ErrorMessage = "這不是E-mail格式")] public string Studentmail { get; set; } [Url(ErrorMessage = "這不是網址標準格式")] public string Url { get; set; } [FileExtensions(ErrorMessage = "所上傳的檔案不是圖片")] public string File { get; set; } [CreditCard(ErrorMessage = "這不是信用卡格式")] public string CreditCard { get; set; } [DataType(DataType.Date)] public string Date { get; set; } [Remote("RemoteTest", "Home", ErrorMessage = "Remote屬性測試")] public string For_Remote { get; set; } [MetadataType(typeof(ContentMetaData))] public partial class Content { private class ContentMetaData { [DisplayName("編號")] public int Id { get; set; } [DisplayName("姓名")] [Required(ErrorMessage = "請輸入性名")] [StringLength(10, ErrorMessage = "姓名不得超過10字元")] public string Name { get; set; } [DisplayName("內容")] [Required(ErrorMessage = "請輸入內容")] public string Content { get; set; } } } }
public class Index { [DisplayName("必選修")] public string required { get; set; } /*name只能有一個,所以這兩段先註解掉 [Required(ErrorMessage = "學生姓名不得為空白")] public string name { get; set; } [StringLength(10, ErrorMessage = "學生姓名不得超過10字元")] public string name { get; set; } */ [StringLength(10, ErrorMessage = "學生姓名必須介於2-10字元", MinimumLength = 2)] public string name { get; set; } [Range(0, 100, ErrorMessage = "得分必須介於0~100之間")] public int point { get; set; } [System.Web.Mvc.Compare("re_password", ErrorMessage = "兩次密碼輸入不一致")] //上面沒有using System.Web.Mvc,所以這邊就要打完整的命名空間 public string password { get; set; } public string re_password { get; set; } [RegularExpression( @"^[0-9]{2,4}-?[0-9]{3,4}-?[0-9]{-4}$", ErrorMessage = "請輸入正確的電話號碼")] public string phone { get; set; } [EmailAddress(ErrorMessage = "這不是E-mail格式")] public string studentmail { get; set; } [Url(ErrorMessage = "這不是網址標準格式")] public string url { get; set; } }