2009-10-06 86 views
2

对于ASP.NET应用程序,如何在使用集成Windows身份验证时提示用户输入用户名/密码?我想在页面后面的代码中使用C#来执行此操作。使用集成Windows身份验证时提示登录详细信息

我想要一些页面(例如http://intranet/admin/)提示输入密码,而其他页面自动通过(通过IWA/NTLM)。然后,我希望它记住用户在访问文件夹/站点中的其他页面时已登录,并提供完成时的注销链接。

编辑: 我想要做的就是向用户发送一个401状态和WWW认证头,然后他们使用他们的Windows凭据登录。

基本上,如果网站不被信任,Firefox/IE是如何做到的。

编辑2: SharePoint会执行此类操作,您可以自动登录,但可以注销并以其他人身份登录,而无需从Windows注销。

编辑3:

一个例子(比其他的SharePoint):您登录为标准(有限)的Windows/Active Directory的用户到受信任的站点,它传递您的凭据。然后,您需要使用不同的凭据登录到网站的管理员部分(但仍然是Windows,而不是WebForms)。唯一的方法是如果您注销Windows,然后再次登录。如果您打开文件(您可能希望访问)或管理员无法在本地登录(禁用交互式登录权限),则不太实用。可以设置模拟,因为页面允许访问普通用户帐户不存在的应用程序(例如数据库,文件,Active Directory管理员)。

基本上使站点内的页面表现得好像它不属于受信任的站点区域。

回答

-1

没有为此分开的代码。

当用户/客户端打开特定的颈部例如,http://intranet/admin/index.aspx

如果配置了Windows身份验证特定的文件夹,浏览器将

自动询问针对特定用户的用户名和密码/客户。

所以这是,你必须在IIS做的特定文件夹

到你想申请的集成Windows身份验证的配置。

+0

它不要求凭证,如果它是一个值得信赖的网站......在某些情况下,我想它,即使它是一个值得信赖的网站。 – SamWM 2009-10-06 10:43:02

+0

其重塑车轮 - 如果它是特定用户的可信站点。希望你明白这一点。 Windows需要注意你需要添加的身份验证。 – solairaja 2009-10-06 11:08:14

+0

就像我说过的,我想模拟SharePoint的功能 - 在哪里注销并以不同的用户身份登录,而无需注销Windows。就我所知,它使用Windows身份验证。 – SamWM 2009-10-06 14:22:18

1

听起来像你需要使用模拟。这允许您“以另一个Windows用户身份运行”。在这里看到:ASP.NET Impersonation

这里有几个CodeProject上的例子:

Windows Impersonation using C#

User Impersonation in .NET

+0

想要做到这一点,而不用通过明文形式的凭据,但使用摘要认证莫名其妙..是否有方式设置asp.net模拟动态,而不是通过web.config? – SamWM 2009-10-06 16:05:29

+0

指向“.NET中的用户模拟”的链接将引导您完成代码中的所有示例项目。 http://www.codeproject.com/KB/dotnet/UserImpersonationInNET.aspx – Jim 2009-10-06 17:23:52

+0

你看过这个链接吗?另外,你有没有想过这个? – Jim 2009-10-15 17:54:04

相关问题