我正在開發(fā)這個(gè) Dotnet 核心 MVC/Razor Pages 應(yīng)用程序,它應(yīng)該阻止用戶通過(guò)搜索欄訪問某些控制器路由,除非他們?cè)谧?cè)表單中指定它。我如何實(shí)現(xiàn)這一目標(biāo)?dotnet core MVC 有這個(gè)關(guān)鍵字嗎?我卡住了。顯示注冊(cè)的身份/帳戶/注冊(cè)的一些相關(guān)代碼如下 [Required] [Display(Name = "Choose businesslisting or choice")] public string Decision { get; set; } } public void OnGet(string returnUrl = null) { ReturnUrl = returnUrl; } public async Task<IActionResult> OnPostAsync(string returnUrl = null) { returnUrl = returnUrl ?? Url.Content("~/"); if (ModelState.IsValid) { var user = new IdentityUser { UserName = Input.Email, Email = Input.Email }; var result = await _userManager.CreateAsync(user, Input.Password); if (Input.Decision == "Business Listing" || Input.Decision == "business listing") { if (result.Succeeded) { _logger.LogInformation("User created a new account with password."); var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); var callbackUrl = Url.Page( "/Account/ConfirmEmail", pageHandler: null, values: new { userId = user.Id, code = code }, protocol: Request.Scheme); await _emailSender.SendEmailAsync(Input.Email, "Change your password", $"Please change your password by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>."); await _signInManager.SignInAsync(user, isPersistent: false); return LocalRedirect(returnUrl); }}
1 回答

侃侃爾雅
TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個(gè)贊
我將從 ASP.NET Core 授權(quán)文檔開始https://learn.microsoft.com/en-us/aspnet/core/security/authorization/introduction?view=aspnetcore-2.2
您可能會(huì)發(fā)現(xiàn)基于聲明的身份驗(yàn)證在這種情況下很有用https://learn.microsoft.com/en-us/aspnet/core/security/authorization/claims?view=aspnetcore-2.2
創(chuàng)建用戶后,您可以添加允許他們?cè)L問特定控制器/url 的特定聲明。
- 1 回答
- 0 關(guān)注
- 101 瀏覽
添加回答
舉報(bào)
0/150
提交
取消