2011-11-09 2 views
2

IIS에서 웹 서비스가 실행 중입니다. 내 목표는 암호로 보호 된 Linux 컴퓨터 (Samba 서버)의 네트워크 폴더에 액세스 할 수 있도록하는 것입니다. IIS에서 사용자 이름과 암호를 등록 할 사용자 계정을 만들 수 있으며이 계정은 asp.net이 서비스를 실행하는 데 사용하는 계정입니다. 또한 리눅스 컴퓨터에서이 계정에 대한 전체 액세스 권한을 부여합니다.IIS의 계정에 대한 사용자 및 암호를 등록하는 방법이 있습니까?

내 질문은 IIS 메타베이스에 암호를 전달할 수 있는지 여부입니다.

답변

1

일반적으로 코드에서 가장을 사용하여이 작업을 수행합니다. 당신은 사용하기 쉬운 방식으로 this small helper class을 사용할 수

using (new Impersonator("myUsername", "myDomainname", "myPassword")) 
{ 
    // <code that executes under the new context> 
} 

또는 사용할 수 ASP.NET Impersonation도있다.

+1

덕분에 정말 ... – apomene

1

How TO: Change Application Pool Identity Programmatically

//Initialize the metabase path 
    string metabasePath = "IIS://localhost/W3SVC/AppPools"; 
    //Specify the name for your application pool 
    string appPoolName = "testAppPool"; //specify the domain account as domain\username 
    //Specify the identity that will run the application pool 
    string appPoolUser = "User1"; 
    //Specify the password for the user 
    string appPoolPass = "Password1"; 
    DirectoryEntry pool1; 
    DirectoryEntry apppools = new DirectoryEntry(metabasePath); 
    pool1 = apppools.Children.Find(appPoolName, "IIsApplicationPool"); 

    /*Change Application Pool Identity*/ 
    pool1.InvokeSet("AppPoolIdentityType", new Object[] { 3 }); 
    pool1.InvokeSet("WAMUserName", new Object[] { Environment.MachineName + @"\" + appPoolUser }); //If you are using a local account 

    pool1.InvokeSet("WAMUserPass", new Object[] { appPoolPass }); 
    /*Commit changes*/ 

    pool1.CommitChanges(); 
+0

이 답변 주셔서 감사합니다 많은 도움이 내가 당신은 여전히 ​​같은 올바른 표시 할 수 있습니다 – apomene

+0

을 도왔다. – apomene

+0

을 투표 할 낮은 담당자가 –

관련 문제