如何在 ASP 中实现 Windows 身份验证和授权.NET

如题所述

身份验证和授权
Windows身份验证和 Windows 授权是两个经常互用的术语。但是,它们的含义并不相同。Windows 身份验证允许收件人确定用户的身份。Windows 授权则决定用户可以访问的资源。

配置 Web 应用程序使用 Windows 身份验证
要配置 Web 应用程序使用 Windows 身份验证,请遵循以下步骤:
创建一个名为 ASPNETWinAuth 的 ASP.NET Web 应用程序。默认情况下出现 WebForm1.aspx 文件。
在 WebForm1.aspx 的 HTML 视图中,用以下示例代码替换现有代码:
<%=User.Identity.Name%>

单击开始,指向程序,指向管理工具,然后单击Internet 信息服务。
出现“Internet 信息服务 MMC”。展开计算机,然后展开使用 Windows 身份验证的 Web 站点。
单击ASPNETWinAuth Web 站点应用程序。
在操作 菜单上,单击属性。
在属性中,单击目录安全 选项卡。
在匿名访问和身份验证控制下,单击编辑。
在身份验证方法中,单击选择集成 Windows 身份验证。单击清除所有其他复选框。
单击确定。
在属性中,单击确定。ASPNETWinAuth Web 应用程序现在配置为接受有效用户帐户。
配置 ASP.NET 应用程序
配置了 IIS Web 站点使用集成 Windows 身份验证后,必须配置 ASP.NET 应用程序以识别经过身份验证的用户。为此,必须更改 Web.config 文件。在 Web.config 文件中,找到 <authentication> 标志,然后将mode 属性设置为Windows,如以下示例所示:
<authentication mode="Windows" />

测试身份验证
要测试 Windows 身份验证设置,请遵循以下步骤:
在 Microsoft Internet Explorer 中,查看 WebForm1.aspx 页。该页位于 http://Localhost 文件夹中。例如:
http://Localhost/ASPNETWinAuth/WebForm1.aspx
由于集成 Windows 身份验证使用客户端计算机上的当前 Windows 用户信息进行身份验证,因此它不立刻提示用户输入用户名和密码。不过,如果身份验证交换无法识别用户,则将出现一个对话框,提示用户输入 Windows 用户帐户的用户名和密码。
键入有效的用户名和密码。当页面载入后,您的用户名将以下面的格式出现:
域 名\用户名
限制访问
在 ASP.NET 中,通过在 Web.config 文件中添加设置,可以设置对应用程序的授权。可以按如下所示指定哪些用户或组有权访问哪些资源:
要允许名为“Managers”的 NT 组的所有成员访问资源,请使用下列代码:
<configuration> <system.web> <authorization> <allow roles="domainname\Managers" /> <deny users="*" /> </authorization> </system.web> </configuration>

要只允许特定用户访问,请使用下列代码:
<configuration> <system.web> <authorization> <allow users="domainname\user1,domainname\user2,domainname\user3" /> <deny users="*" /> </authorization> </system.web> </configuration>

备注 可以使用逗号分隔的列表来指定多个角色或用户。检查在指定配置文件元素和关联的属性值时是否使用了正确的大小写。此代码是区分大小写的。
温馨提示:答案为网友推荐,仅供参考
相似回答