2012-08-15 64 views
0

我有一個登錄名,我的大多數用戶輸入以下類型的用戶名「mydomain \ Y98765」進入我們的網站。我最近升級了我們的網站,不再需要他們在th用戶名中輸入「mydomain \」。我知道我需要使用replace命令將「mydomain \」替換爲「」,但是,我的服務器不斷崩潰。這是提供用戶沒有鍵入mydomain的代碼。簡單的查詢,需要幫助替換一些文本

UserManager Usermanager = new UserManager(); 

UserData userdata = Usermanager.Login(UserName.Text, Password.Text, "DC=my,DC=domain,DC=co,DC=uk"); 

這是我曾嘗試過,但崩潰的服務器。有人可以幫助請

string username = UserName.Replace("mydomain\\",""); 
UserData userdata = Usermanager.Login(username, Password.Text, "DC=my,DC=domain,DC=co,DC=uk"); 
+1

你會得到什麼錯誤? – 2012-08-15 14:49:34

+0

嘗試'字符串用戶名= UserName.Text.Replace(@「mydomain \」,「」);' – steveg89 2012-08-15 14:50:34

+0

感謝Steveg89,解決我的初步查詢,我認爲,需要更多的測試,但。我們的一些新用戶在他們的用戶名中沒有「mydomain \」,這是否能應對這種情況? – JK36 2012-08-15 14:57:35

回答

0

要解決您的塞康dissue嘗試:

string username = (UserName.Text.Contains("mydomain\\")) ? UserName.Text.Replace("mydomain\\","") : UserName.Text; 
UserData userdata = Usermanager.Login(username, Password.Text, "DC=my,DC=domain,DC=co,DC=uk"); 
1

你的替換代碼不起作用的原因是因爲你沒有實際使用的用戶名控件的文本。你試圖在控件本身上調用replace,這沒有任何作用。爲了解決這個問題,你必須改變你的代碼:對字符串是否包含「MYDOMAIN \」是不必要的

string username = UserName.Text.Replace(@"mydomain\",""); 

檢查。如果替換字符串不包含「mydomain \」,則替換不會對該字符串執行任何操作,並且也不會真正提高效率。

+0

謝謝史蒂夫,我認爲是這樣,我試圖跟蹤智能感知,並且當我有「.Text.Replace」時出錯。替換不應該做任何事情,如果「mydomain \」不存在,但我嘗試了相同的用戶名/密碼組合,一個與mydomain \和一個沒有,它拒絕登錄我的系統與沒有...這與我一起工作的CMS不是最好的一致性... – JK36 2012-08-15 15:15:32

+0

Upvoted你的答案,因爲你回答了原來的問題; O) – bUKaneer 2012-08-15 15:26:48

+0

謝謝。在我的測試中,替換沒有改變「mydomain \」不存在時的字符串。你是否100%肯定你沒有輸錯密碼或什麼? – steveg89 2012-08-15 15:35:35