代码之家  ›  专栏  ›  技术社区  ›  user302845

RIA认证过程中出现问题

  •  3
  • user302845  · 技术社区  · 15 年前

    我在RIA中构建了一个从DomainService和IAuthenticate继承的身份验证服务。

    问题如下:

    如果由于凭据错误而导致LoginOperation失败(LoginOperation.LoginsAccess为false),则一切正常,并向用户报告。

    但是,当登录成功时,我会抛出一个非常奇怪的异常:

    System.ServiceModel.DomainServices.Client.DomainOperationException:查询“登录”的加载操作失败。值不能为空。

    参数名称:validationErrors--->system.argumentNullException:值不能为空。 参数名称:validationErrors 在System.ServiceModel.DomainServices.Client.QueryCompletedResult..ctor(IEnumerable 1 entities, IEnumerable 1 includentities,int32 totalcount,ienumerable`1 validationErrors)


    我不太明白。IEnumerable ValidationErrors是什么,它出现在哪里,为什么必须出现!= NULL?这是在我将身份验证服务从nhibernate移植到实体框架之后开始的。我甚至尝试过用谷歌搜索这个例外,显然我是目前唯一有这个问题的人。

    任何帮助都将不胜感激。

    2 回复  |  直到 15 年前
        1
  •  0
  •   user302845    15 年前

    RIA似乎不支持属性中的LINQ表达式。IEnumerable角色中的getter是问题所在。你必须手动填写;你不能写像这样的东西 return (from a in User.UserRoles select a.Description).AsEnumerable(); ,不起作用。

        2
  •  0
  •   Stef Heyenrath Dariusz Woźniak    15 年前

    我也有同样的问题,谢谢你的帮助!!!!

    但是,当你做一个 托尔斯特() 这样地:

    [DataMember]
    public IEnumerable<string> Roles
    {
        get
        {
            return ApplicationRoles.Select(r => r.Name).ToList();
        }
        set
        {
            // TODO
        }
    }