2012-07-16 57 views
0

我已經在Sitecore解決方案上設置了Extranet。登錄和訪問外部網下的項目可以在安全性等方面正常工作。在Sitecore 6的Extranet中處理安全媒體項目?

但也有文件,應該只有登錄到Extranet的用戶才能訪問。爲此,我在媒體庫的根目錄中創建了一個名爲Extranet的文件夾。我已對此設置了安全性(添加了extranet\user並從extranet\everyone刪除了read訪問權限)。我也檢查了security字段中的inheritance選項。

但是,當我在該文件夾下面添加一個文件時,它看起來並不像它繼承了安全設置。雖然extranet\anonymous不能訪問該項目,extranet\user也不能。如果我明確地在文件上設置了安全性並允許extranet\user,它就可以工作。

我可能會錯過什麼?

回答

1

問題是存在衝突。您必須創建一個不同的角色,例如:extranet/registered並授予其讀取權限。登錄後,在登錄的用戶上設置「extranet/registered」角色。 如何設置一個角色的某些代碼:

var loginUser = database.ValidateUserForLogin(userName.Trim(), password.Trim()); 
      if (loginUser == null) return false; 

      User _user = AuthenticationManager.BuildVirtualUser(domainUser, true); 

      if (_user != null) 
      { 
       AuthenticationManager.Login(_user); 
       _user.RuntimeSettings.AddedRoles.Add(@"extranet\registered"); 
       _user.Profile.SetCustomProperty("UserId", loginUser .UserId.ToString()); 
      } 

loginUser是從數據庫中的自定義對象。 我正在使用sitecore authenticationmanager(來自sitecore.security命名空間)。

試試這個,讓我知道它是怎麼回事。

相關問題