我们目前已经建立了一个开发服务器,我们正在尝试在其上测试一些 Windows 身份验证 ASP.NET 代码。
我们已经在 Windows Server 2008 R2 上的 IIS7 中成功启用了 Windows 身份验证,并且它会要求用户输入用户名和密码,但问题是它似乎不接受任何凭据。例如此代码...
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Page.Title = "Home page for " + User.Identity.Name
End Sub
...总是返回一个空字符串。
我们的一个理论是,我们尚未安装 Active Directory,我们只是通过机器名而不是域登录来测试它。
这种类型的身份验证是否仅适用于域(如果是这样,我们可能可以安装 Active Directory 和一些测试帐户) - 或者是否可以在使用机器名称登录时获取用户身份?
理想情况下,我们希望能够使用我们自己的帐户(再次说明这些帐户不在域中)和 IIS 在我们的本地机器(Windows 7 Pro)上进行测试,但这与我们的开发服务器存在同样的问题。
谢谢,
答案1
不,Auth 不仅适用于域帐户!
身份验证类型在 web.config 或 IIS 上定义。如果是在 IIS 7 上,请尝试检查是否未启用匿名身份验证。并检查您的应用是否在 web.config 上没有显示
<authentication mode="none" />
这将导致用户名出现空字符串