Jump to content

Resgatar o utilizador online e mostrar numa label


RicardoGaio
 Share

Recommended Posts

Viva!

A minha duvida neste momento prende-se com o facto de saber como "apanhar" o nome de utilizador que está online e mostrá-lo numa label inserida na masterpage.

Estou num domínio e estou a usar asp.net com VB.

Se criar uma página "avulso", funciona bem:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Testemostrauser.aspx.vb" Inherits="Testemostrauser" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:Label ID="Label1" runat="server"></asp:Label>
    </form>
</body>
</html>

Partial Class Testemostrauser
    Inherits System.Web.UI.Page
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Label1.Text = User.Identity.Name
    End Sub
End Class

Se colocar o esse mesmo código na masterpage.vb dá erro:

Imports Microsoft.VisualBasic.ApplicationServices
Imports System.Web.Security
Partial Class NovaMasterPage_VB
    Inherits System.Web.UI.MasterPage
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        lblUtilizador.Text = User.Identity.Name
    End Sub
End Class

O erro que dá é (aparece sublinhado às ondas e deixando o rato em cima mostra o seguinte) : 'Identity' is not a member of 'Microsoft.VisualBasic.ApplicationServices.User'

Como posso/devo contornar isto?

Todas as ajudas são bem vindas! 😄

Um abraço, Ricardo

Link to comment
Share on other sites

 Imports Microsoft.VisualBasic.ApplicationServices

Boas,

podes contornar utilizando uma variável de sessão, Atribuis na altura do login o nome do utilizador e preenches na variável de sessão.

Então depois consegues atribuir o nome à label.

É uma maneira de contornar a situação.

Cumprimentos Paulo Silva

Link to comment
Share on other sites

Obrigado, Paulo, pela dica! 🙂

Acho estranho, porque ao usar o

Label1.Text = User.Identity.Name

numa página "normal" funciona bem, se usar esse código na master.vb dá aquele erro... 😄

Acabei por fazer assim, na MasterPage.master.vb:

Partial Class MasterPage
    Inherits System.Web.UI.MasterPage

    Function GetUserName() As String
        Dim parts() As String = Split(My.User.Name, "\")
        Dim username As String = parts(1)
        Return username
    End Function

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        lblUtilizador.Text = GetUserName()
    End Sub
End Class

(Adaptado daqui: http://msdn.microsoft.com/en-us/library/ts4s4536.aspx)

Funciona e muito bem!  😁

Um abraço, Ricardo

Link to comment
Share on other sites

Viva!

Prosseguindo a saga (ou chaga) que referi aqui: http://www.portugal-a-programar.pt/index.php?showtopic=37665

Usando a função acima, funciona tudo bem na máquina de desenvolvimento ("Saca" o utilizador que iniciou sessão na máquina, (Utilizador de ActiveDirectory)). Correndo a partir do servidor, não aparece nenhum nome de utilizador...!  :wallbash:

Já alterei para isto:

Imports Microsoft.VisualBasic.ApplicationServices
Imports System.Web.Security

Partial Class NovaMasterPage_VB
    Inherits System.Web.UI.MasterPage

    Dim User_Em_Sessao As String = HttpContext.Current.User.Identity.Name.ToString()

    Private Function ExtractUserName(ByVal path As String) As String
        Dim userPath As String() = path.Split(New Char() {"\"c})
        Return userPath(userPath.Length - 1)
    End Function

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
                lblUtilizador.Text = ExtractUserName(User_Em_Sessao)
    End Sub
End Class

Mas o problema mantém-se... 🙂

Alguém tem mais algumas sugestões...?

Um abraço, Ricardo

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.