2010-09-28 20 views
2

我們擁有SharePoint站點的少數使用,我們已經開發了各種用戶控件進行自定義的東西,包括身份驗證和授權。在其中一個網站上,當一個新用戶由管理員創建時,它將創建此最小長度的字符數的密碼,保存用戶信息並向用戶電子郵件地址發送電子郵件。一切都很好,直到....企業只是流傳下來的所有用戶必須VS以前的8這衣被合計是在裝配在一個靜態類,所以我們可以這樣做DLL緩存問題/ GAC的Sharepoint

使用10個字符長度minumum密碼的新政策
//Assembly 1 defines rules and logic 

public static class AccountRules 
{ 
    public static int PasswordMinimumLength = 10; 
} 


//Assembly 2 calls references Assembly 1 

Status CreateUser(User u) 
{ 
    if (u.Password == null) 
    { 
     u.Password = GeneratePassword(); 
    } 

    return DAL.SaveUser(User); 

} 


string CreatePassword() 
{ 
    string pass = ""; 
    for (int i = 0; i < AccountRules.PasswordMimimumLength; i++) 
    { 
     pass += RandomChar(); 
    } 
} 

我們更新了包含此常數,重建相關的網站和出版管制給DEV服務器組件。現在我創建一個新帳戶,並且仍然創建8個字符的密碼!我用反射器檢查裝配體,恆定長度爲10.我從GAC中移除了這個裝配體,並重新安裝了具有10個特徵的新裝配體,並仍然生成8個字符密碼。我們在IIS中重新啓動了該網站,但沒有運氣,共享點應用程序池,整個IIS實例,物理盒子以及8個字符的密碼。在哪裏可能緩存dll,這是發生?我在這一張上撕掉了我的頭髮。預先感謝您的上帝般的專家的任何幫助。

+0

你確定CreatePassword() 沒有在定時器作業中運行嗎? – unclepaul84 2010-09-28 14:50:09

回答

3

你有幾件事情,你可以做些什麼來幫助設法追蹤下來。

  1. 確保它不是本地複製到你的應用程序
  2. 使用Fusion Log Viewer,看看什麼是真正被綁定的/ bin文件夾

更可能融合日誌查看器將得到你需要什麼。

+0

感謝您的回答。融合日誌查看器對GAC不太熟悉。問題的結局是,價值來自GAC(vs bin文件夾中的dll,這就是爲什麼它在這個dll被刪除時工作的原因),並且得到了我的團隊和我之間一些不良溝通的幫助。 – Phil 2010-10-06 03:09:53

+0

我很高興它幫助!如果這導致你的答案,這將是很好的接受答案,所以其他人知道什麼幫助! – 2010-10-07 14:22:35

1

我不確定您的身份驗證系統是如何定製的。通常我會期望在成員資格定義中的web.config中找到最小密碼長度限制。如果你正在使用某種會員模式,那麼這就是我要檢查的第一個地方。 (簡而言之:也許不是你的DLL定義了最小密碼長度,即使有人在那裏放了一個常量!)

+1

這個:(簡而言之:也許它不是你的DLL定義的最小密碼長度,即使有人把一個常量在那裏!) – 2010-09-28 19:44:02