c# – 我应该在哪里阅读我的WCF服务的用户名和密码?
发布时间:2020-12-15 21:18:12 所属栏目:百科 来源:网络整理
导读:我有一个只有一个按钮的 WPF应用程序.单击该按钮时,它所做的就是打开该服务.这是代码: private void button1_Click(object sender,RoutedEventArgs e) { ServiceReference1.TestServiceClient c = new ServiceReference1.TestServiceClient(); XDocument do
我有一个只有一个按钮的
WPF应用程序.单击该按钮时,它所做的就是打开该服务.这是代码:
private void button1_Click(object sender,RoutedEventArgs e) { ServiceReference1.TestServiceClient c = new ServiceReference1.TestServiceClient(); XDocument doc = XDocument.Load(@"c:TestTest.xml"); c.ClientCredentials.UserName.UserName = doc.Root.Element("Credentials").Attribute("username").Value; c.ClientCredentials.UserName.Password = doc.Root.Element("Credentials").Attribute("password").Value; try { c.Open(); } catch (Exception ex) { } } 从上面可以看到,我正在从xml文件中的Credentials节点读取用户名和密码以验证客户端.将它放在这里是否合适,因为最初,我在我的Validate方法中定义了它: public override void Validate(string userName,string password) { // XDocument doc = XDocument.Load(@"c:TestTest.xml"); // userName = doc.Root.Element("Credentials").Attribute("username").Value; // password = doc.Root.Element("Credentials").Attribute("password").Value; if (string.IsNullOrEmpty(userName)) throw new ArgumentNullException("userName"); if (string.IsNullOrEmpty(password)) throw new ArgumentNullException("password"); // check if the user is not test if (userName != "test" || password != "test") throw new FaultException("Username and Password Failed"); } 但是上面的问题是,无论我传递到c.ClientCredentials.UserName.UserName和c.ClientCredentials.UserName.Password到达Validate方法时都会被覆盖.例如,在我的按钮单击中,如果我只有: c.ClientCredentials.UserName.UserName =“test1”; 上面应该会失败,但是当它进入Validate方法,我读取了具有用户名和密码属性作为test和test的xml文件时,它将通过. 作为旁注,我注意到我的Validate方法被调用,但我似乎无法介入.调试器符号不会被加载. 解决方法
你正在用你的阅读覆盖参数
public override void Validate(string suppliedUserName,string suppliedPassword){ // ... string validUserName = doc.Root.Element("Credentials").Attribute("username").Value; string validPassword = doc.Root.Element("Credentials").Attribute("password").Value; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |