从wcf数据服务返回单个实体

时间:2011-03-18 10:22:08

标签: wcf wcf-data-services

我只是想知道如何从wcf数据服务返回单个实体?

我想提供一个方法public User Login(string username, string password)并将登录用户返回给用户界面。

谢谢!

ANDI

2 个答案:

答案 0 :(得分:2)

旧问题已过时,但您需要定义Service Operation

[WebGet]
[SingleResult]
public User GetAuthenticatedUser(string username, string password) {
    //
    // Fetch and return the user
    // with the given parameters
    //
}

usernamepassword通过URI以明文形式传递。更好的选择是从HTTP请求的username标头中提取passwordAuthorization数据,通过线路加密请求( SSL )。一个简单的例子可能是为数据服务定义一个构造函数,并在其中附加到ProcessingRequest事件:

public MyDataService() {
    this.ProcessingPipeline.ProcessingRequest += (o, e) => { 
        // 
        // Do stuff with e.OperationContext.RequestHeaders["Authorization"]
        // storing the result into an instance property
        //
    };
}

使用User GetCurrentUser()服务操作引用usernamepassword的授权属性,而不是将它们作为GET查询字符串参数接受。

答案 1 :(得分:-1)

我认为这会对你有帮助。

我假设User是你的实体表。

public User Login(string username,string password)
{
   Entity obj = new Entity();
   User objUser = (from U in obj.User where U.username = username and U.password = password Select U).Single();
   return objUser;
}

这对我来说很好,我希望它可以帮到你。