好的,这是我一整天都在处理的问题:
我正在使用 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 表单中调用我的上下文(登录页面中的相同上下文)
谢谢