2011-04-13 97 views
1

我在檢查這是否爲sitecore錯誤,或者如果我丟失了明顯的東西。具有sitecore域名的匿名用戶

編輯澄清:我遇到的問題是,我想在Domains.config文件來設置的配置設置,以便Sitecore的不應創建(和/或返回)匿名用戶爲此設置的域名。但是,如果我在域上使用Domain.GetUsers()函數,我仍然會返回匿名用戶。

成員資格提供程序是一種自定義構建,並以只讀模式連接到LDAP。

詳細

使用Sitecore的6.4.1和APP_CONFIG /安全性給出以下域配置/ domains.config

<domain name="DOMAINNAME" ensureAnonymousUser="false" anonymousUserName="" everyoneRoleName="" /> 

,並在domain.config文件這些意見

anonymousUserName: <snip> Set to blank to disable the anonymous user for the domain. Optional 
ensureAnonymousUser: Indicates if the domain should ensure that an anonymous user for the domain exists in the Membership database. Optional - default value: false 
everyoneRoleName: <snip> Set to blank to disable the everyone role for the domain. Optional - default value: Everyone 

如果我使用下面的代碼,

List<Sitecore.Security.Accounts.User> users = new List<Sitecore.Security.Accounts.User>(); 
var domain = Sitecore.Security.Domains.Domain.GetDomain(DOMAINNAME); 
users.AddRange(domain.GetUsers().ToArray<Sitecore.Security.Accounts.User>()); 

我得到包含在用戶列表中的匿名用戶。我從domain.config文件中的評論中假定,如果我像上面那樣設置域,那麼我不應該得到匿名用戶。

有什麼明顯的我失蹤了嗎?

回答

0

只是一個猜測,因爲我還沒有使用過6.4或之前調整過任何類型的設置......但是我相信Sitecore總是預先打包成員中的匿名用戶。通過將ensureAnonymousUser設置爲false,您只是告訴它不要確保它在那裏,但默認情況下它已經存在。你爲什麼不嘗試一下測試:

  1. 套裝ensureAnonymousUsertrue然後刪除[*]從用戶管理器中的匿名用戶。
  2. 註銷並返回,看看它是否在那裏。如果是這樣,那麼「確保」方面的工作。所以...
  3. 設置ensureAnonymousUserfalse然後做同樣的事情。用戶回來了嗎?

這實際上只是一個預測它的工作原理 - 我現在沒有像現在這樣的環境來玩,但它值得一試。

[*] - 刪除用戶表單上的用戶管理器,進入Sitecore的「安全」用戶管理

+0

嗨馬克,ensureAnonymousUser可能是無關我的觀點,但我把它列入,因爲它處理匿名用戶。將其中一個設置爲true可確保在域中不存在匿名用戶時創建該用戶。Sitecore在sitecore域中有一個匿名用戶,但我試圖通過自定義的只讀LDAP成員資格提供程序設置一個非sitecore域,並且我不希望匿名用戶在GetUsers()函數中返回表示非sitecore域名。 – Marko 2011-04-14 05:38:35

+0

很高興知道。您應該更新與該信息的問題,因爲它是更好地瞭解您的問題的必要條件。你有沒有看過[文檔爲LDAP模塊](http://sdn.sitecore.net/Products/LDAP.aspx)? – 2011-04-14 14:18:19

+0

我已編輯該問題以提供澄清。我正在使用一個自定義的LDAP成員資格提供程序,因爲LDAP模塊太多了,並沒有提供給我這個客戶需要的東西。 – Marko 2011-04-14 23:24:15

0

我認爲這是給你用成員提供更多的問題。看看Active Directory Module

也許這是可以幫助你的東西。

+0

這可能是我的問題的一部分,我寫*會員供應商,因爲AD模塊沒有做我們需要爲這個客戶做的事情。我的主要問題是,我認爲sitecore不應該創建(或返回)一個匿名用戶,如果該配置文件中的設置是正確的? – Marko 2011-04-14 23:16:16

+0

Sitecore與此無關。會員提供者上方只有包裝。開箱即用標準的ASP.Net安全性[鏈接](http://msdn.microsoft.com/en-us/library/ff648345.aspx#paght000022_usingthesqlmembershipprovider)。你需要在那裏挖掘。或者實施你自己的會員供應商。 – 2011-04-15 09:11:45

+0

正如我在第一條評論中所說的,我_did_實現了我自己的會員供應商。您提供的鏈接不會討論匿名用戶,所以我仍然認爲這是一個sitecore特定的事情,特別是因爲domains.config文件包含anonymousUserName和everyoneRoleName設置以及與這些設置相關的註釋。 – Marko 2011-04-18 04:35:14