2013-07-15 103 views
2

我在AngularJS有一個沉重的客戶端Web應用程序。我正在使用C#控制器來執行Active Directory身份驗證,下面是此代碼。C#活動目錄認證

public UserModel Get() 
{ 
     UserModel currentUser = new UserModel(); 
     currentUser.name = User.Identity.Name; 
     // currentUser.auth = contactFromAD(User.Identity.Name); 
     currentUser.auth = true; 
     return currentUser; 
} 

那麼什麼AD帳戶您登錄到,然後進行一些邏輯來檢查您是否認證用戶訪問該網站的做的是檢查。

但是我怎麼能得到這個在localhost之外工作。當代碼正在運行服務器時,我怎樣才能讓User.Identity.Name返回當前使用該應用程序的人的身份。

回答

1

我不知道我瞭解AngularJS角度。如果我有一個常規的WCF服務,我將使用ServiceSecurityContext.Current中的WindowsIdentity。
http://msdn.microsoft.com/en-us/library/system.servicemodel.servicesecuritycontext.aspx

ServiceSecurityContext securityContext = ServiceSecurityContext.Current; 

if (securityContext == null) 
    throw new Exception("Failed to retrieve Service Security Context"); 

WindowsIdentity identity = securityContext.WindowsIdentity; 
currentUser.name = identity.Name