2009-06-02 7 views
1

저는 SharePoint (3.0)의 사이트 모음 관리자/(실제 서버 관리자)이며 다른 사용자의 권한을 디버깅하여 일부 자체 기능에 액세스합니다. 암호를 모른 채 다른 사용자 (자신의 권한으로)로 로그인하는 것이 가능합니까? 같은 그룹에 할당 된 내 '더미'사용자를 만들 수 있지만 사용자가 있다면 100 명이 넘는 그룹을보고 오늘 저녁에하고 싶은 것이 없습니다. 감사합니다. .공유 지점에 다른 사용자로 로그인

- y를

+0

이것은 serverfault.com에 있어야합니다. – tvanfosson

+0

죄송합니다. did not는 serverfault에 관해 알았다. – nothrow

+0

그러나 이것이 관리자에게는 정확하게 문제가되지 않는다고 생각합니다. 그들은 프로그래머가 아니라 ..이게 필요합니다. – nothrow

답변

0

내가 다른 방법 (my post for serverfault을)를 알아 낸 다음은

는 가장 코드를 실행하는 방법에 대한 글입니다 포함

1) 자신의 IHttpModule 쓰기 (깨끗하지,하지만 작업) :이 솔루션은 다음과 같은됩니다

class LoginModule { 
public void Init(HttpApplication context) 
{ 
    context.PreRequestHandlerExecute += new EventHandler(UglyHack); 
} 

void UglyHack(object sender, EventArgs e) 
{ 
    HttpCookie wannabe = (HttpContext.Current.Request.Cookies["_sp_admin_wanna_be_user"]); 
    if (wannabe != null && SPContext.Current.Web.CurrentUser.IsSiteAdmin) 
    { 
     SPWeb cw = SPContext.Current.Web; 
     typeof(SPWeb).GetField("m_CurrentUser", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(
         SPContext.Current.Web, 
         cw.AllUsers[wannabe.Value]); 
    } 
} 
} 

2) 그것을

3) GAC 서명이

4) web.config().

Voila! 너는 남자 야. :) (물론 메뉴, 보안 등에 쿠키 설정을 추가하는 논리를 추가했습니다.)

1

만 UI에서 가장 할 수 있다면 나도 몰라,하지만 당신은 실용적으로 그것을 할 수 있습니다.

저는 100 % 확신 할 수는 없지만 가장을 처리 할 ASP.NET 페이지를 만들면 원하는 사용자로 로그인 할 수 있다고 생각합니다. 특정 코드를 찾으려면 코드를 실행하여 액세스 권한이 무엇인지 결정할 수 있습니다.

겠어요 - :

http://blackninjasoftware.com/2009/04/09/how-to-programmatically-impersonate-users-in-sharepoint/

+0

올바른 방법을 가르쳐 주셔서 고마워요. – nothrow

관련 문제