2015-10-14 88 views
0

這裏是一個sitecore新手。我們有一個使用Sitecore 8構建的現有網站。它生活在我們的生產環境中。我最近加入了公司,我的背景是後端.NET開發。我被要求編寫一個實用程序模塊,允許我們刪除符合特定條件的註冊用戶。該網站提供用戶註冊的能力,註冊用戶存儲在覈心數據庫中。我最初的想法是直接針對數據庫,但很快就知道存儲的數據是序列化的。我也想過編寫一個c#控制檯應用程序來做到這一點,但似乎有很多配置/設置步驟來做到這一點,並且最好從一個web應用程序來完成。有沒有人有關於如何設置一個簡單的實用程序Web應用程序來連接到現有的Sitecore數據庫的任何提示?我希望我會被要求添加更多功能/功能。創建一個sitecore管理網站

+0

難道你不能只在現有的項目中工作嗎?我想你可以在控制器中創建一個自定義操作並調用該操作。否則,您也可以安裝Item Web API並使用webrequests與之交談。 –

回答

0

據我瞭解,目標是能夠刪除某些用戶。

最簡單的方法是使用Sitecore PowerShell模塊,但作爲一個不會很容易(你需要安裝模塊)的新手。使用PowerShell模塊,您甚至不需要創建用戶界面。

Here is the documentation怎麼辦使用Remove-User使用PowerShell

如果PowerShell的選項不適合你,你可以使用從利用Sitecore的API的代碼,所以你刪除的方法將類似於下面:

public void DeleteUser(string userName) 
    { 
     try 
     { 
      Sitecore.Security.Accounts.User user = Sitecore.Security.Accounts.User.FromName(userName, true); 
      user.Delete(); 
     } 
     catch (Exception ex) 
     { 
      Sitecore.Diagnostics.Log.Error(string.Format("Error in Client.Project.Security.UserMaintenance (DeleteUser): Message: {0}; Source:{1}", ex.Message, ex.Source), this); 
     }    
    } 

所以當迭代用戶名被刪除時你只需調用這個方法。根據其憑據,你會運行的代碼,您可能需要使用SecurityDisabler來包裝它省略權限檢查刪除操作:

using (new SecurityDisabler()) 
{ 
    // you code to delete here within using block 
} 

希望這有助於!

+0

嗨馬丁,我覺得舒適的PowerShell腳本工作。看到我的問題上面給理查德。 – degmo

1

換取這樣的管理功能,我會嘗試使用Sitecore的PowerShell的擴展:https://marketplace.sitecore.net/en/Modules/Sitecore_PowerShell_console.aspx

將Get-User命令可以拉動用戶從系統中: Get-User Documentation

PS master:\> Get-User -Filter "[email protected]*.com" 

Name      Domain  IsAdministrator IsAuthenticated 
----      ------  --------------- --------------- 
sitecore\michael   sitecore  False   False 

然後你可以使用刪除用戶刪除它們:Remove-User Documentation

關於如何使用SPE,它有很多很好的資源,它對這樣的東西很棒。

+0

有幾個問題。 1.有沒有辦法在使用Get-User命令時返回自定義字段,即我想顯示一個自定義字段「age」? 2.如何使用自定義字段進行篩選?例如,我想返回「年齡」爲25的所有用戶並刪除它們。 – degmo