2012-05-18 193 views
4

我需要通過ADFS來檢查特定用戶是否存在或不在Active Directory中。通過ADFS(Active Directory Federation Service)對用戶進行身份驗證

所以,我想我的ADFScheck user Authentication通過用戶名/密碼。

有沒有人可以提供相同的示例代碼或教程。

在此先感謝!

+0

實際上,您在這裏提出兩個問題:ADFS可以檢查用戶是否存在於Active Directory中,並且可以使用用戶名和密碼在ADFS中進行身份驗證。 – flayn

回答

1

AD FS 2.0登錄頁面支持開箱即用的用戶名/密碼驗證。沒有必要的代碼或定製。

0

根據@Marnix,這是超出框的行爲。

然而,僅僅指出:

驗證用戶是不一樣的檢查特定用戶是否在Active Directory中存在。

例如用戶可能被鎖定。他仍然存在於AD中,但無法進行身份驗證。

5

要使用用戶名/密碼驗證就可以使用

信任/ 13/UsernameMixed

端點ADFS 2.0。

這不會檢查用戶是否存在於Active Directory中!

在代碼中你所要求的令牌是這樣的:

WSTrustChannelFactory adfsfactory = new WSTrustChannelFactory(new UserNameWSTrustBinding(SecurityMode.TransportWithMessageCredential), 
          StsEndpoint); 

adfsfactory.TrustVersion = TrustVersion.WSTrust13; 

// Username and Password here... 
factory.Credentials.UserName.UserName = "domain\username"; 
factory.Credentials.UserName.Password = "password"; 

IWSTrustChannelContract channel = adfsfactory.CreateChannel(); 

// request the token 
SecurityToken token = channel.Issue(rst); 

然後使用您的令牌爲您服務創建通道工廠:

var binding = new WS2007FederationHttpBinding(WSFederationHttpSecurityMode.Message); 

var factory = new ChannelFactory<IYourInterface >(binding, "your service address"); 

factory.ConfigureChannelFactory(); 

IYourInterface channel = factory.CreateChannelWithIssuedToken(token); 

希望這有助於!

+0

我相信這將檢查身份驗證...您認爲ADFS是暴露API來檢查特定用戶是否存在或不是通過給定的憑據(例如電子郵件/密碼)? – nunu

+0

是的,正如我在帖子中寫的,您可以使用它進行身份驗證。據我所知,ADFS沒有一個允許你檢查用戶是否存在的功能。你可以寫一個非常簡單的web服務來檢查用戶是否存在,甚至是一個網站。 – flayn

+1

LdapConnection.UserExists(UserName);也許你在找什麼。 – flayn

相關問題