none
(Sumber: milist DOTNET) membership , gunakan method server.transfer RRS feed

  • Pertanyaan

  • Halo semua, langsung ya…semoga malam minggu ada yang “melekan” dan bisa bantu… J

     

    Gini, saya sudah set role (dan folder)  pakai VS membership sebanyak 5 buah :

     

    1.       Pengelola (bisa masuk semua bagian , alias admin)

    2.       Produksi (hanya masuk bagian produksi saja dan tentu saja pengelola)

    3.       Sales (hanya untuk sales person dan pengelola)

    4.       Selling (bagian penerimaan penjualan dan pengelola)

    5.       Sos_badDebt (hutang mati dan pengelola saja)

     

    Kemudian saya manfaatkan method server.transfer untuk mengarahkan ke masing-masing folder.

     

    Karena banyak pilihan , maka algoritma select…case jadi pilihan dan saya buat script sbb :

     

     

    Dim role As String

            Select Case User.IsInRole(role)

                Case User.IsInRole("pengelola")

                    Server.Transfer("~\pengelola\Default.aspx")

                Case User.IsInRole("produksi")

                    Server.Transfer("~\produksi\Default.aspx")

                Case User.IsInRole("sales")

                    Server.Transfer("~\sales\Default.aspx")

                Case User.IsInRole("selling")

                    Server.Transfer("~\selling\Default.aspx")

                Case User.IsInRole("sos_badDebt")

                    Server.Transfer("~\sos_badDebt\Default.aspx")

            End Select

     

     

    Sialnya, kok tidak bisa jalan ya?? Kadang user A yang anggota sales, malah masuk ke pengelola. Anggota B yang termasuk kelompok selling juga masuk ke pengelola

     

    Ini beda kalau pakai logika if..then..else. Yang dibawah ini sukes…tapi kan tidak bisa kalau banyak role yang diterapkan.

     

       If User.IsInRole("selling") Then

                     Server.Transfer("~\selling\Default.aspx")

            Else

                Server.Transfer("salah.aspx")

     

            End If

     

    Adakah yang salah? Tolong deh pencerahannya….


    Senin, 11 Juli 2011 10.37
    Moderator

Jawaban

  • Tidak bisa pake select case kalau kasusnya seperti itu, justru tepatnya menggunakan if...perintah if bisa kok untuk check multiple condition, tinggal pake if...else if...else if...else...end if...

     

    Select case itu hanya dapat mengevaluasi satu kondisi saja. User.IsInRole akan mengembalikan nilai boolean, true or false, jadi untuk kasus tersebut logikanya tidak tepat. Kalau mau yang di select case itu variabel role.

     

    Dijawab oleh: Rully Yulian.


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Senin, 11 Juli 2011 10.38
    Moderator

Semua Balasan

  • Tidak bisa pake select case kalau kasusnya seperti itu, justru tepatnya menggunakan if...perintah if bisa kok untuk check multiple condition, tinggal pake if...else if...else if...else...end if...

     

    Select case itu hanya dapat mengevaluasi satu kondisi saja. User.IsInRole akan mengembalikan nilai boolean, true or false, jadi untuk kasus tersebut logikanya tidak tepat. Kalau mau yang di select case itu variabel role.

     

    Dijawab oleh: Rully Yulian.


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Senin, 11 Juli 2011 10.38
    Moderator
  • Bener Cak Rully, sudah saya coba sbb :

     

      If User.IsInRole("selling") Then

                Server.Transfer("~\selling\Default.aspx")

            ElseIf User.IsInRole("pengelola") Then

                Server.Transfer("~\pengelola\Default.aspx")

            ElseIf User.IsInRole("sos_badDebt") Then

                Server.Transfer("~\sos_badDebt\Default.aspx")

            ElseIf User.IsInRole("produksi") Then

                Server.Transfer("~\produksi\Default.aspx")

            ElseIf User.IsInRole("sales") Then

                Server.Transfer("~\sales\Default.aspx")

     

            End If

     

    Hasilnya jalan……sip deh….

     

    Makasih ya…..

     


    Senin, 11 Juli 2011 10.39
    Moderator