2012-10-26 4 views
0

IIS가 페이지를 보는 사람의 Active Directory 사용자 이름을 가져 오도록합니다. 이것이 가능한가? ASP.NET 인증을 통해이 작업을 수행 할 수 있다고 생각했지만 시도해 보았을 때 '401 Unauthorized : 잘못된 자격 증명으로 인해 액세스가 거부되었습니다'라는 오류 메시지가 나타납니다. 기본적으로 웹 페이지가 현재 사용자 이름을 가져 와서 비교를 수행하여이 사람이 특정 보안 그룹의 구성원인지 확인한 다음 특정 보안 그룹의 구성원인지 확인한 다음 내용을 표시합니다. VS2010 inbuilt 테스트 서버를 사용하여 로컬 PC에서 잘 작동하는 모든 것이 있지만 내 광고 세부 정보를 가져오고 있습니다. 이제 모든 작업이 완료되었으므로 IIS7을 실행하는 테스트 서버로 이동하여이 작업을 수행하려고합니다.ASP.NET에서 현재 사용자 이름 빼기

는 다음과 내가 (이 내 로컬 컴퓨터에서 일했다) 뒤에 내 Default.aspx를 코드에있는 유일한 코드는 같이

내가 여기 것과
string[] arr = System.Web.HttpContext.Current.Request.LogonUserIdentity.Name.Split('\\'); 

if (arr.Length > 0) 
{ 
    lblDomain.Text = arr[0].ToString(); 
    lblUser.Text = arr[1].ToString(); 
} 

(http://stackoverflow.com/questions/10584545/activedirectory-current-username-in-asp-net) 내가 원한 것처럼 보이지만 내 코드 숨김과 관련이 있는지 궁금해. 나는 또한 나의 Web.Config에서 특별한 것을 필요로하는지 확신 할 수 없다. 나는 거기에 다음과 같은 것을 가지고 있었지만 500 오류가 발생했습니다.

<authentication mode="Windows"/> 
<identity impersonate="true"/> 

위의 스택 오버플로 질문에 대한 대답을 시도했지만 여전히 500 오류가 발생합니다. 어떤 힌트도 크게 감사 할 것입니다.

다음과 같이 시도했지만 여전히 500 오류가 발생합니다. 그것이 잘못 될지 확실하지 않습니다.

string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name; 

그리고는 :

string userName = Environment.UserName; 

답변

2

를 사용할 수 있습니다.

+0

그랬습니다. 신뢰할 수있는 사이트로 인해 사용자 이름과 비밀번호를 묻는 메시지가 표시되지만 도메인 사용자에게는 표시되지 않습니다. – Trido

0

Environment.UserName은 가장이 설정되어있는 경우 당신이 원하는 설정됩니다.

+0

나는이 짓궂은 500 가지 오류를 받고있다. 나는 그들이 일반적인 오류라고 알고 있지만, 그들이 당신에게 더 많은 정보를 줄 수 있다면 좋을 것이다. 특히 IIS7에서 더 나은 오류 메시지를 구성 할 수있는 권한이 없기 때문에 특히 그렇습니다. – Trido

0

당신은 (익명 포함) Windows 인증을 가능하게하고 인증의 모든 다른 형태를 해제하려고 IIS에서

HttpContext.Current.User.Identity.Name 

It will give you Domain\UserName 
관련 문제