你好老鄉的StackOverflow和編程愛好者。我有一個問題,我試圖將我創建的MVC網站移到測試服務器上,以便用戶可以開始測試......我遇到了一個我在開發網站時忽略的小問題。我的網站調用我寫了一個服務,它需要的服務的來電AD用戶名,並用它做一些後臺的工作......Windows身份驗證WCF和ASP.Net MVC2:讓用戶AD信息到WCF web服務
private string CallerNameOnly = string.Empty;
private string CallerFullDomain = string.Empty;
public ACOService()
{
this.CallerFullDomain = OperationContext.Current.ServiceSecurityContext.WindowsIdentity.Name.ToString();
this.CallerNameOnly = this.CallerFullDomain.Substring(this.CallerFullDomain.IndexOf('\\') + 1);
}
這個工作只是完美,當我我的本地機器和發展我用戶名被傳遞到服務中就好了......但是,當我部署到我正在使用的服務器時,我很難複製相同的功能...出於某種原因,當前用戶最終成爲我的計算機名稱。 .. 現在,我似乎已經分離出的問題,一種設置在IIS 7中,改變的時候,改變了我的網站的行爲有點...如果我去的應用程序池高級設置和更改過程模型/標識字段,從本地系統,到任何其他身份的它改變誰是用戶......我的遠程調試器ke pt竊聽我,所以我無法弄清楚用戶名是什麼,但你明白了嗎?
我的問題是,我怎麼使用我的網站(使用Windows身份驗證)來調用我的web服務,他用來訪問我的網站的用戶名的人的用戶名?我想到得到的用戶名和其直接傳遞到構造函數即...
public ACOService(string userID)
{
this.CallerNameOnly = userID;
}
,但呈現的問題,因爲我已經在一個字符串的構造函數。我想我必須將構造函數放入我的合同中嗎?無論如何,這將如何在WCF中工作? 任何有關這個問題的幫助將不勝感激。
您是否禁用IIS設置中的匿名訪問?當您不允許匿名訪問並且僅在IIS中使用Windows身份驗證時會發生什麼? – RoelF
匿名訪問被拒絕。 – SoftwareSavant
好的,你使用什麼樣的綁定WCF服務?你爲他們設置了任何身份驗證嗎? – RoelF