身份验证后没有返回?

时间:2012-04-23 00:20:09

标签: c# wcf linq web-services authentication

当我尝试使用此方法返回学生时,它不显示任何内容或任何错误,如果我不在密码框中放任何内容我收到404错误,所以我知道它的工作原因我的身份验证方法不是工作,我基本上想要验证用户并从学生集合中返回一些东西,比如FirstName?

private void button20_Click(object sender, EventArgs e)
{
    string uri = string.Format("http://localhost:8000/Service/AuthenticateStudent/{0}/{1}", textBox28.Text, textBox29.Text);
    XDocument xDoc = XDocument.Load(uri);
    var Tag12 = xDoc.Descendants("Student")
        .Select(n => new
        {
            FirstName = n.Element("FirstName").Value,
        })
        .ToList();


    dataGridView12.DataSource = Tag12;
}

1 个答案:

答案 0 :(得分:1)

您需要创建一个特殊的返回类型,其中包含您当前返回的布尔值以及学生:

public class AuthenticationResult
{
    public bool IsValid {get;set;}
    public Student ValidatedStudent {get;set;}
}

然后从WCF方法返回此类型的对象:

public AuthenticationResult AuthenticateStudent(string studentID, string password)
{
    var result = students.FirstOrDefault(n => n.StudentID == studentID);
    bool flag = false;
    if (result != null) {...}

    ...
    return new AuthenticationResult {IsValid = flag, ValidatedStudent = result};
}