对于 ASP.NET 应用程序,使用集成 Windows 身份验证时如何提示用户输入用户名/密码?我想在页面后面的代码中使用 C# 来执行此操作。
我想要一些页面(例如http://内网/admin/ http://intranet/admin/)提示输入密码,而其他则自动通过(通过 IWA/NTLM)。然后,我希望它记住用户在访问文件夹/站点中的其他页面时已登录,并在完成后提供注销链接。
编辑:
我想要做的是将 401 状态和 WWW-Authentication 标头发送给用户,以便他们使用 Windows 凭据登录。
基本上,如果站点不受信任,Firefox / IE 将如何执行此操作。
编辑2:
SharePoint 就是这样做的,您可以自动登录,但可以注销并以其他人的身份登录,而无需注销 Windows。
Edit 3:
示例(SharePoint 除外):您以标准(有限访问)Windows/Active Directory 用户身份登录受信任的站点,该站点会传递您的凭据。然后,您想要使用不同的凭据(但仍然是 Windows,而不是 WebForms)登录站点的管理部分。唯一的其他方法是注销 Windows,然后重新登录。如果您打开了文件(您可能希望访问)或管理员无法本地登录(交互式登录权限已禁用),则不实用。可以设置模拟,因为该页面允许访问常规用户帐户不允许的应用程序(例如数据库、文件、Active Directory 管理)。
基本上使站点内的页面表现得好像它不属于受信任站点区域一样。
听起来您需要使用模拟。这允许您“以”另一个 Windows 用户的身份运行。看这里:ASP.NET 模拟 http://msdn.microsoft.com/en-us/library/xh507fc5.aspx
以下是几个 CodeProject 示例:
使用 C# 进行 Windows 模拟 http://www.codeproject.com/KB/cs/cpimpersonation1.aspx
.NET 中的用户模拟 http://www.codeproject.com/KB/dotnet/UserImpersonationInNET.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)