2009-06-02 12 views
1

私はSharePoint(3.0)のサイトコレクション管理者/(物理サーバー管理者)です。私自身の機能のいくつかにアクセスするために他のユーザーの権限をデバッグしています。パスワードを知らずに別のユーザーとして(自分の権限で)ログインすることはできますか?同じグループに割り当てられた自分の「ダミー」ユーザーを作成できますが、ユーザーがいる場合は100以上のグループを探して、今晩何をしたいのか分かりません。おかげさまで 共有ポイントで別のユーザーとしてログインする

- Y

+0

これはserverfault.comにする必要があります。 – tvanfosson

+0

申し訳ありません。 serverfaultについて知りませんでした。 – nothrow

+0

しかし、私は、これは管理者にとっては正確には問題ではない、彼らはむしろプログラマーよりむしろこれを必要としないと思う。 – nothrow

答えて

0

私は別の方法(my post for serverfault)それを考え出した:

Soがします解決策は以下の通りである:(きれいな、しかし、動作していない)

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

関連する問題