2017-07-27 17 views
0

當我將我的應用程序發佈到我的Web服務器時。在IIS管理器中,我爲應用程序池提供了我使用的標識爲Network Service網絡服務應用程序池身份被拒絕訪問從AD中的組中刪除用戶

在我的應用程序中,我提供了從特定Active Directory組中刪除/添加用戶的功能。這裏是代碼:

public static void RemoveUserFromGroup(string userId, string groupName) 
{ 
    try 
    { 
     using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, "myDomain")) 
     { 
      GroupPrincipal group = GroupPrincipal.FindByIdentity(pc, groupName); 
      group.Members.Remove(pc, IdentityType.UserPrincipalName, userId); 
      group.Save(); 
     } 
    } 
    catch (Exception E) 
    { 
     throw E; 

    } 
} 

這工作時,我測試本地,因爲我的帳戶具有處理AD時的管理員權限。所以只是爲了檢查,在頁面加載,我做這個登錄Windows用戶名:

var thread = '@System.Security.Principal.WindowsIdentity.GetCurrent().Name'; 
console.log(thread); 

這導致NT AUTHORITYNETWORK SERVICE。但是,當我嘗試從AD組中刪除用戶。我得到:

訪問被拒絕

如何給Network Service訪問做到這一點?或者有另一種方法可以做到這一點?

+0

爲什麼你刪除你的其他問題只是爲了欺騙它? https://stackoverflow.com/questions/45355257/removing-user-from-ad-not-working-when-app-is-published – Amy

+0

@Amy,因爲我發現了更多的信息,可以提供一個更清晰的問題而不是有人不得不翻閱你和我的評論來獲取更多信息。 –

+0

未來**編輯問題**。 – Amy

回答

1

「NT AUTHORITY \ Network Service」是一個內置的機器級別 Windows帳戶由多種進程使用,不僅僅是IIS(加載服務控制面板(開始>運行>「services.msc 「),然後查看」Log On As「(登錄身份)列,您將看到幾個Windows組件在該身份下運行,因此,您不應該更改帳戶的權限和權限 - 您可能無法這樣做!

你可以做的是創建一個具有相應權限的域用戶,並配置應用程序池以該身份運行。或者,它看起來像constructors for PrincipalContext之一允許指定用戶名和密碼,雖然這將是mea ñ你需要在自己的某處存儲用戶名和密碼。

+0

我假設你的意思不是使用「內置帳戶」中的選項..我會創建一個「自定義帳戶」? –

+0

@BviLLe_Kid,yup – Rob

+0

這使我可以在那裏創建一個用戶名和密碼?那麼我必須以某種方式找到該用戶名,並給它正確的權限? –

相關問題