首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sensenet:使用Sensenet客户端API初始化ClientContent

Sensenet:使用Sensenet客户端API初始化ClientContent
EN

Stack Overflow用户
提问于 2017-02-09 12:10:39
回答 1查看 77关注 0票数 0

在我的应用程序中,我有自己的API,可以将内容保存在不同的存储库中。其中之一就是Sensenet。

我使用客户端API将内容存储在Sensenet上,但初始化客户端上下文时遇到了问题:

代码语言:javascript
复制
ClientContext.Initialize(new[]
            {
                new ServerContext
                {
                    Url = siteUrl,
                    Username = userName,
                    Password = userPassword
                }
            });

当我启动我的应用程序时,对方法的第一个调用会很好地初始化,但是在第二个调用中,它会启动一个异常.

我相信这个解决方案可以通过使用ClientContext.Current.但我不知道该如何实现它..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-11 14:38:19

客户端上下文的初始化方法应该只在每个应用程序域中调用一次。这就是为什么在第二个电话中出现异常的原因。

在您的情况下(当您从另一个web应用程序调用Sense/Net时),您应该在应用程序启动过程中只调用它一次。另一个例子是:在命令行工具中,应该在主方法的某个地方调用它。

Initialize方法目前做得不多,只存储所提供的服务器信息。例如,如果您想从导入器工具中使用单个管理用户调用Sense/Net,这样就不必在每次调用时提供用户凭据,这是非常有用的。

但是,如果您想使用调用不同的用户凭据(为了使用Sense/Net的权限系统)调用方法,您可以简单地提供每个调用的服务器信息。例如:

代码语言:javascript
复制
var server = new ServerContext
{
    Url = "http://example.com",
    Username = "johnsmith",
    Password = "password"
};

// see the server parameter here!
var content = await Content.LoadAsync(1234, server);
content["MyField"] = "value";

// no server parameter, we already know it
await content.SaveAsync();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42136391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档