2012-08-15 65 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