2013-06-20 1 views
0

"익명 사용자 허용"옵션을 사용하여 ASP 웹 페이지에 현재 로그온 한 사용자의 Windows 로그인을 공식적으로 또는 해킹 할 수 있는지 궁금합니다. 또는 가져온 된 Windows DLL을 아마도 사용하여?asp 웹 페이지에서 Windows 로그인 사용자를 얻는 방법은 무엇입니까?

나는 "로그인 익명 사용자 거부"를 통해 쉽게 로그인 창을 검색 할 수 있음을 알고 있습니다. 그러나 몇 가지 특별한 이유 때문에 Windows 로그인을 검색하고 익명 사용자를 허용하고 싶습니다. 따라서 Windows 로그인이 내 데이터베이스의 사용자 인 경우 다른 웹 페이지로 리디렉션됩니다.

나는 것을 ckecked했다 : (그러나 windowsLogin == 항상 빈)

ASP-C 번호

string windowsLogin = System.Security.Principal.WindowsPrincipal.Current.Identity.Name; 
string windowsLogin = System.Threading.Thread.CurrentPrincipal.Identity.Name; 
string windowsLogin = System.Net.CredentialCache.DefaultCredentials.ToString(); 
string windowsLogin = Request.ServerVariables["LOGON_USER"].ToString(); 

의 Web.config

<authorization> 
     <deny users ="?" /><!-- Deny acces to anonymous users--> 
     <allow users ="*" /><!-- Allow acces to every users--> 
    </authorization> 
    <identity impersonate="true"/> 
    <authentication mode="Forms"> 
     <forms loginUrl="./WebLogin.aspx" defaultUrl="./default.aspx" timeout="12" path="/" name=".ASPXFORMSAUTH" slidingExpiration="true" /> 
    </authentication> 
+0

이 클래식 ASP와는 아무 상관이 없다 -의 닷넷 질문 – John

+0

내가 태그를 추가 코멘트 주셔서 감사를 그물. –

답변

0

당신은해야합니다 익명 사용자를 허용하고, Windows 인증을 시도 할 수 있습니다.

<authorization> 
    <allow users ="*" /><!-- Allow acces to every user and do not deny anonymous --> 
</authorization> 
<authentication mode="Windows" /> 

그것은 ServerVariables 일부 경우에 C 번호에 대한 감가 상각 된 것 같다.

그렇다면, 당신이이 방법을 수행해야합니다 : 당신이 정말로 역시 ServerVariables를 사용하려면

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

, 그들은 C#에서 민감한 경우이다 명심하십시오. 올바른 케이스는 거의 항상 UPPER이며, 여기의 목록입니다

List of ServerVariables

관련 문제