0

好的,这是我一整天都在处理的问题:

我正在使用 WCF 数据服务和 XPO 作为包含方法的服务器端的 ORM 数据模型构建 Web 应用程序表单,而在客户端,我试图在身份验证后从 Web 表单向数据库添加一行.

用户可以使用以下代码登录而不会出现问题:

try
            {
                ctx = null;
                ctx = new XpoContext(serviceRootUri);

                ctx.Credentials = new NetworkCredential(UserName.Text, UserPass.Text);
                var res = ctx.Users.FirstOrDefault();

                FormsAuthentication.RedirectFromLoginPage(UserName.Text, Persist.Checked);
            }

            catch (SecurityException ex)
                {
                Msg.Text = "Erreur: " + ex.Message;
                }
         }

现在我想用这段代码在数据库中添加一行:

Uri u = new Uri(string.Format(LogIn.ctx.BaseUri + "/CreateUser?name='{0}'&pass='{1}'",
            New_UserName.Text, New_UserPass.Text), UriKind.RelativeOrAbsolute);

            LogIn.ctx.Execute(u, "GET");

            ServiceReference1.Users user = new ServiceReference1.Users();
            user.Nom = New_UserName.Text;
            user.Pass = New_UserPass.Text;


            LogIn.ctx.AddToUsers(user);
            LogIn.ctx.SaveChanges();

但在第一两行执行后发生异常。

我在登录页面中将我的上下文声明为静态:

private static Uri serviceRootUri = new Uri("http://localhost:28748/WcfDataService1.svc/");
public static XpoContext ctx;

如您所见,我使用 LogIn.ctx 在 adduser Web 表单中调用我的上下文(登录页面中的相同上下文)

谢谢

4

0 回答 0