【问题标题】:Problem during RIA authenticationRIA 身份验证期间的问题
【发布时间】:2010-06-08 15:49:39
【问题描述】:

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

问题如下:

当 LoginOperation 失败(loginOperation.LoginSuccess 为 false)由于凭据错误时,一切正常并报告给用户。

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

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

参数名称:validationErrors ---> System.ArgumentNullException:值不能为空。 参数名称:validationErrors 在 System.ServiceModel.DomainServices.Client.QueryCompletedResult..ctor(IEnumerable1 entities, IEnumerable1 includedEntities, Int32 totalCount, IEnumerable`1 validationErrors)


我真的不明白这一点。什么是 IEnumerable validationErrors,它出现在哪里以及为什么它必须是 != null ?这在我将身份验证服务从 Nhibernate 移植到 Entity Framework 之后开始发生。我什至试过用谷歌搜索这个异常,显然到目前为止我是唯一一个遇到这个问题的人。

任何帮助将不胜感激。

【问题讨论】:

    标签: c# silverlight wcf-ria-services


    【解决方案1】:

    RIA 似乎不支持属性中的 linq 表达式。 IEnumerable Roles 中的 Getter 是问题所在。您必须手动填写;你不能写像return (from a in User.UserRoles select a.Description).AsEnumerable();这样的东西,它不会工作。

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,谢谢你的帮助!!!

      但是,当您像这样执行 ToList() 时,这是可能的:

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

      【讨论】:

        猜你喜欢
        • 2012-06-16
        • 2017-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多