0

これはコードです。このコードを使用して、共有ポイントのリストにデータを挿入しています。ユーザーに権限がある場合、このコードはリストにデータを挿入しています。ユーザーに権限がない場合、エラー access denied が発生しています。これを克服する方法は?

Protected Sub Btn_Registration_Click(ByVal sender As Object, ByVal e As                                                      System.EventArgs) Handles Btn_Registration.Click
    SPSecurity.RunWithElevatedPrivileges(AddressOf TcregistrationRun)
End Sub
Public Sub TcregistrationRun()     
            Dim _TCNricNum As String = Session("IC").ToString
            Dim _Msite As SPSite = New SPSite(SPContext.Current.Site.Url)
            Dim _MWeb As SPWeb = _Msite.OpenWeb("/Admin")
            _MWeb.AllowUnsafeUpdates = True              
            NewEnTry.Update()
            _MWeb.AllowUnsafeUpdates = False 
End Sub
4

1 に答える 1

1

これを試してください...昇格された特権で実行するための呼び出し内に、Webの新しいインスタンスとサイトの新しいインスタンスを作成します。これにより、より高い権限で新しいインスタンスが確実に作成されます。サイトで匿名アクセスを許可すると機能するはずです。こちらのスレッドを参照してください。また、メソッド呼び出しでリストのインスタンスを取得することも覚えておく必要があります。

using (SPSite site = new SPSite(SPContext.Current.Site.ID)) 
{ 
   using (SPWeb web = site.AllWebs[SPContext.Current.Web.ID]) 
   { 
      web.AllowUnsafeUpdate = true; 

      // Get instance of list item and set the values 

      // Call update on the list item

      web.AllowUnsafeUpdate = false;
   } 
}
于 2012-05-17T08:35:49.980 に答える