如何通过ASP.NET webpart中的Kentico 7.x API对用户进行身份验证?

时间:2014-01-10 11:27:48

标签: c# asp.net content-management-system kentico

我尝试通过API在kentico中创建新文档,但我遇到了用户身份验证问题。我尝试使用以下代码:

TreeProvider tree = new TreeProvider(CMSContext.CurrentUser);

但我在网站上的授权系统与kentico authoristation无关,但它不起作用。我试过把管理员用户名放在那里:

CMS.SiteProvider.UserInfo userInfo =
CMS.SiteProvider.UserInfoProvider.GetUserInfo("administrator");
CMS.DocumentEngine.TreeProvider tree = new CMS.DocumentEngine.TreeProvider(userInfo);

它也不起作用。我找到了一个在代码中对用户进行身份验证的示例,但它是针对Kentico 4.x的,现在我使用了kentico 7.x,它不支持" AuthenticateUser"方法

CMS.SiteProvider.UserInfo ui = CMS.SiteProvider.UserInfoProvider.AuthenticateUser(txtboxUsername.Text,
txtboxPassword.Text, CMS.CMSHelper.CMSContext.CurrentSite.SiteName);

您能否建议我如何在代码中验证用户身份?

1 个答案:

答案 0 :(得分:0)

为什么你认为是身份验证问题?您发布的代码只是实例化TreeProvider,它不会创建文档。我建议您查看API示例,您可以在站点管理器 - 支持 - API示例 - 文档下找到它们。基本上它会是这样的:

TreeProvider tree = new TreeProvider(CMSContext.CurrentUser);

// Select root at parent
TreeNode parentNode = tree.SelectSingleNode(CMSContext.CurrentSiteName, "/", "en-us");

// Create a new instance of the Tree node
TreeNode newNode = TreeNode.New("CMS.MenuItem", tree);

// Set the document's properties
newNode.DocumentName = "Document name";
newNode.DocumentCulture = "en-us";

// Set document type specific fields
newNode.SetValue("Field1", "value");

// Insert the document into the content tree
DocumentHelper.InsertDocument(newNode, parentNode, tree);