diff --git a/.DS_Store b/.DS_Store index 950724b..3234296 100755 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/ASP_NET_CORE/mvcblog/Areas/Admin/Pages/Role/Add.cshtml b/ASP_NET_CORE/mvcblog/Areas/Admin/Pages/Role/Add.cshtml new file mode 100644 index 0000000..1526aed --- /dev/null +++ b/ASP_NET_CORE/mvcblog/Areas/Admin/Pages/Role/Add.cshtml @@ -0,0 +1,31 @@ +@page "/admin/role/updaterole/{handler?}/" +@model Album.Areas.Admin.Pages.Role.AddModel +@{ + var btnText = Model.IsUpdate ? "Cập nhật" : "Tạo mới"; +} + + +
Chọn các role gán cho @Model.Input.Name
+ +Bạn có chăc chắn xóa Role @Model.Input.Name
+ +Role ID | +Tên | +Tác vụ | +
---|---|---|
@role.Id | +@role.Name | ++ + + + + Claims + + + + | +
UserName | +Roles | +Actions | +
---|---|---|
@user.UserName | +@user.listroles | ++ + | +
+ Thêm Claim +
+ID | ++ @Html.DisplayNameFor(model => model.claims[0].ClaimType) + | ++ @Html.DisplayNameFor(model => model.claims[0].ClaimValue) + | ++ |
---|---|---|---|
+ @Html.DisplayFor(modelItem => item.Id) + | ++ @Html.DisplayFor(modelItem => item.ClaimType) + | ++ @Html.DisplayFor(modelItem => item.ClaimValue) + | ++ Edit | + Delete + | +
Bạn không được phép truy cập vào tài nguyên đã yêu cầu.
+@Model.StatusMessage
\ No newline at end of file diff --git a/ASP_NET_CORE/mvcblog/Areas/Identity/Pages/Account/ConfirmEmail.cshtml.cs b/ASP_NET_CORE/mvcblog/Areas/Identity/Pages/Account/ConfirmEmail.cshtml.cs new file mode 100644 index 0000000..a7c1422 --- /dev/null +++ b/ASP_NET_CORE/mvcblog/Areas/Identity/Pages/Account/ConfirmEmail.cshtml.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using mvcblog.Models; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.AspNetCore.WebUtilities; +using XTLASPNET; + +namespace Album.Areas.Identity.Pages.Account { + [AllowAnonymous] + public class ConfirmEmailModel : PageModel { + private readonly UserManager+ Bạn đã xác thực với tài khoản @Model.ProviderDisplayName. + Vui lòng nhập (hoặc xác nhận) chính xác email để liên kết và đăng nhập. +
+ ++ Hãy kiểm tra hòm thư email của bạn để thực hiện bước tiếp theo +
+ diff --git a/ASP_NET_CORE/mvcblog/Areas/Identity/Pages/Account/ForgotPasswordConfirmation.cshtml.cs b/ASP_NET_CORE/mvcblog/Areas/Identity/Pages/Account/ForgotPasswordConfirmation.cshtml.cs new file mode 100644 index 0000000..daa1964 --- /dev/null +++ b/ASP_NET_CORE/mvcblog/Areas/Identity/Pages/Account/ForgotPasswordConfirmation.cshtml.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc.RazorPages; + +namespace Album.Areas.Identity.Pages.Account +{ + [AllowAnonymous] + public class ForgotPasswordConfirmation : PageModel + { + public void OnGet() + { + } + } +} diff --git a/ASP_NET_CORE/mvcblog/Areas/Identity/Pages/Account/Lockout.cshtml b/ASP_NET_CORE/mvcblog/Areas/Identity/Pages/Account/Lockout.cshtml new file mode 100644 index 0000000..728bcea --- /dev/null +++ b/ASP_NET_CORE/mvcblog/Areas/Identity/Pages/Account/Lockout.cshtml @@ -0,0 +1,10 @@ +@page "/lockout/" +@model LockoutModel +@{ + ViewData["Title"] = "Tạm khóa tài khoản"; +} + +Tài khoản này tạm khóa, vui lòng thử lại sau.
+Your login is protected with an authenticator app. Enter your authenticator code below.
++ Don't have access to your authenticator device? You can + log in with a recovery code. +
+ +@section Scripts { ++ You have requested to log in with a recovery code. This login will not be remembered until you provide + an authenticator app code at log in or disable 2FA and log in again. +
++ Deleting this data will permanently remove your account, and this cannot be recovered. +
++ This action only disables 2FA. +
++ Disabling 2FA does not change the keys used in authenticator apps. If you wish to change the key + used in an authenticator app you should reset your authenticator keys. +
+To use an authenticator app go through the following steps:
++ Download a two-factor authenticator app like Microsoft Authenticator for + Android and + iOS or + Google Authenticator for + Android and + iOS. +
+Scan the QR Code or enter this key @Model.SharedKey into your two factor authenticator app. Spaces and casing do not matter.
++ Once you have scanned the QR code or input the key above, your two factor authentication app will provide you + with a unique code. Enter the code in the confirmation box below. +
+@login.ProviderDisplayName | ++ @if (Model.ShowRemoveButton) + { + + } + else + { + @: + } + | +
+ + Put these codes in a safe place. +
++ If you lose your device and don't have the recovery codes you will lose access to your account. +
++ Generating new recovery codes does not change the keys used in authenticator apps. If you wish to change the key + used in an authenticator app you should reset your authenticator keys. +
+Your account contains personal data that you have given us. This page allows you to download or delete that data.
++ Deleting this data will permanently remove your account, and this cannot be recovered. +
+ ++ Delete +
++ + If you reset your authenticator key your authenticator app will not work until you reconfigure it. +
++ This process disables 2FA until you verify your authenticator app. + If you do not complete your authenticator app configuration you may lose access to your account. +
++ Tài khoản chưa đặt mật khẩu, nên cần đặt mật khẩu cho tài khoản +
++ Put these codes in a safe place. +
++ If you lose your device and don't have the recovery codes you will lose access to your account. +
+@Model.RecoveryCodes[row]
@Model.RecoveryCodes[row + 1]
You must generate a new set of recovery codes before you can log in with a recovery code.
+You can generate a new set of recovery codes.
+You should generate a new set of recovery codes.
+Một email đã gửi đến cho bạn, bạn cần mở email làm theo hướng dẫn trong email sau đó + Bấm vào đây để tiếp tục +
diff --git a/ASP_NET_CORE/mvcblog/Areas/Identity/Pages/Account/RegisterConfirmation.cshtml.cs b/ASP_NET_CORE/mvcblog/Areas/Identity/Pages/Account/RegisterConfirmation.cshtml.cs new file mode 100644 index 0000000..8be4d51 --- /dev/null +++ b/ASP_NET_CORE/mvcblog/Areas/Identity/Pages/Account/RegisterConfirmation.cshtml.cs @@ -0,0 +1,66 @@ +using Microsoft.AspNetCore.Authorization; +using System.Text; +using System.Threading.Tasks; +using mvcblog.Models; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Identity.UI.Services; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.AspNetCore.WebUtilities; +using XTLASPNET; + +namespace Album.Areas.Identity.Pages.Account +{ + [AllowAnonymous] + public class RegisterConfirmationModel : PageModel + { + private readonly UserManager+ Đã đặt lại mặt khẩu. Đăng nhập tại đây. +
diff --git a/ASP_NET_CORE/mvcblog/Areas/Identity/Pages/Account/ResetPasswordConfirmation.cshtml.cs b/ASP_NET_CORE/mvcblog/Areas/Identity/Pages/Account/ResetPasswordConfirmation.cshtml.cs new file mode 100644 index 0000000..c26bf45 --- /dev/null +++ b/ASP_NET_CORE/mvcblog/Areas/Identity/Pages/Account/ResetPasswordConfirmation.cshtml.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc.RazorPages; + +namespace Album.Areas.Identity.Pages.Account +{ + [AllowAnonymous] + public class ResetPasswordConfirmationModel : PageModel + { + public void OnGet() + { + + } + } +} diff --git a/ASP_NET_CORE/mvcblog/Areas/Identity/Pages/Account/_StatusMessage.cshtml b/ASP_NET_CORE/mvcblog/Areas/Identity/Pages/Account/_StatusMessage.cshtml new file mode 100644 index 0000000..e996841 --- /dev/null +++ b/ASP_NET_CORE/mvcblog/Areas/Identity/Pages/Account/_StatusMessage.cshtml @@ -0,0 +1,10 @@ +@model string + +@if (!String.IsNullOrEmpty(Model)) +{ + var statusMessageClass = Model.StartsWith("Error") ? "danger" : "success"; +
+ Request ID: @Model.RequestId
+
+ Swapping to Development environment will display more detailed information about the error that occurred. +
++ Development environment should not be enabled in deployed applications, as it can result in sensitive information from exceptions being displayed to end users. For local debugging, development environment can be enabled by setting the ASPNETCORE_ENVIRONMENT environment variable to Development, and restarting the application. +
diff --git a/ASP_NET_CORE/mvcblog/Areas/Identity/Pages/Error.cshtml.cs b/ASP_NET_CORE/mvcblog/Areas/Identity/Pages/Error.cshtml.cs new file mode 100644 index 0000000..6bda83c --- /dev/null +++ b/ASP_NET_CORE/mvcblog/Areas/Identity/Pages/Error.cshtml.cs @@ -0,0 +1,21 @@ +using System.Diagnostics; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; + +namespace Album.Areas.Identity.Pages +{ + [AllowAnonymous] + [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] + public class ErrorModel : PageModel + { + public string RequestId { get; set; } + + public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); + + public void OnGet() + { + RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier; + } + } +} diff --git a/ASP_NET_CORE/mvcblog/Areas/Identity/Pages/_ValidationScriptsPartial.cshtml b/ASP_NET_CORE/mvcblog/Areas/Identity/Pages/_ValidationScriptsPartial.cshtml new file mode 100644 index 0000000..9e26f3b --- /dev/null +++ b/ASP_NET_CORE/mvcblog/Areas/Identity/Pages/_ValidationScriptsPartial.cshtml @@ -0,0 +1,18 @@ +