ASP.NET MVC 身份验证

17 Mar 2025 | 阅读 2 分钟

建议使 Web 应用程序高度安全可靠。 Web 应用程序在网络上会面临安全问题和挑战。 ASP.NET 提供了身份验证功能来处理这些问题,以便我们可以过滤用户访问我们的应用程序。

我们可以在创建应用程序时为我们的应用程序设置各种类型的身份验证。 在应用程序开发期间,MVC 会要求进行身份验证,其中包括以下内容。

ASP Authentication 1

无身份验证:用于为应用程序设置无身份验证。 它允许匿名用户访问。

个人用户帐户:这是最常用和最常见的方法,用于为应用程序设置身份验证。 它用于设置单个用户访问应用程序的身份验证。

工作或学校帐户:它用于通过 Active Directory、Microsoft Azure Active Directory 等对用户进行身份验证。 我们可以为各个组织设置权限。

Windows 身份验证:主要用于内部网应用程序。

示例

让我们创建一个实现身份验证模块的 ASP.NET MVC 应用程序。 此示例包括以下步骤。


创建 ASP.NET MVC 项目

选择“文件”菜单并创建新项目,提供项目名称并从给定的几个选项中选择应用程序类型。

ASP Authentication 2
ASP Authentication 3

选择模板

ASP Authentication 4

更改身份验证

ASP Authentication 5

单击“确定”后,它将创建一个类似于这样的项目。

ASP Authentication 6

该项目具有默认结构,其中包含 Model、View 和 Controller 的单独文件夹。 HomeController 是默认控制器;我们可以使用 Ctrl+F5 执行此项目。 运行到浏览器时,它将产生以下输出。

ASP Authentication 7

我们可以看到,在应用程序的右上角有 注册登录 链接。 这些链接是可用的,因为我们在创建应用程序时更改了 身份验证类型。 现在,此应用程序将仅允许注册用户。

除此之外,我们也可以在控制器级别设置身份验证。 ASP.NET MVC 提供了可以应用于控制器和操作级别的注释。


身份验证注释

ASP.NET 提供了一个 Authorize 注释,可以将其应用于操作以设置用户可访问性。 要创建一个控制器,请右键单击 Controller 文件夹并选择控制器,它将向该文件夹添加一个新控制器。 下面给出一个截图。

ASP Authentication 8

创建的控制器有一些默认代码,我们已修改这些代码以实现授权注释。 我们的控制器名称是 CheckAuthController。

// CheckAuthController.cs

通过从浏览器访问,如果我们使用 https://:54382/CheckAuth, 它将产生以下输出。

ASP Authentication 9

它有效,因为它可公开访问,但另一个操作不可公开访问。 因此,当我们访问 https://:54382/CheckAuth/AuthorisedOnly 时,它会自动重定向到 登录 页面。 这意味着只有注册用户才能访问它。

ASP Authentication 10