1

在我的身份验证服务中,我想在我的用户服务上调用方法(查询或调用)来验证凭据。因此,例如:

    protected override AuthUser ValidateCredentials(string name, string password, 
        string customData, out string userData)
    {
        AuthUser user = null;
        userData = null;

        using (UserService svc = new UserService())
        {

            if (the result of a call on UserService shows a valid username/password)
            {
                //Create the user object
                user = new AuthUser()
                {
                    Name = name,
                    UserId = // that user's UserId
                };
            }

            if (user != null)
            {
                //Set custom data fields for HTTP session
                userData = user.UserId.ToString();
            }
        }

        return user;
    }

我在搜索“从另一个 ria 服务调用 ria 服务”之类的内容时发现的结果与实际从另一个调用一个无关。从范式的角度来看,我做错了什么吗?如果没有,你到底是怎么做到的?:)

4

1 回答 1

1

当您只想查询时聚合 DomainServices 非常简单。就像是

新的 MyDomainService().GetUser(userName)

应该可以正常工作。但是,当您尝试提交或调用时,它变得更加棘手,因为您需要初始化和处置 DomainService。我这样做已经有一段时间了,但我认为您可以在父 DS 中覆盖 Initialize 和 Dispose 以调用子 DS 中的方法。对于提交,您将无法直接调用方法。相反,您需要创建一个 ChangeSet 并调用 DS.Submit 方法。

此外,对于您的场景,可能值得在此处查看自定义身份验证示例。对于您要尝试做的事情,这是一种略有不同的方法。

于 2010-09-30T16:28:41.530 回答