2009-10-06 97 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

相關問題