繁体   English   中英

如何获取当前用户ID

[英]How to get current user ID

我正在开发一个网页,当您注册和登录时,您需要填写您的信息(姓名、职业、性别)。 我创建了一个存储过程:

ALTER PROCEDURE [dbo].[añadirinfocontacto]
    @id int,@apellidoP nvarchar(50),@apellidoM nvarchar(50),@nombre nvarchar(50),@idEspecialidad int,@sexo nvarchar(10)
AS
BEGIN
    if(@id=1)
    begin
    update Tbl_alumnos set nombre=@nombre,apellido_paterno=@apellidoP,apellido_materno=@apellidoM,id_especialidad=@idEspecialidad,sexo=@sexo where id_usuarios=@id
    end
    else
    if(@id=2)
    begin
    update Tbl_Maestros set nombre=@nombre,apellido_paterno=@apellidoP,apellido_materno=@apellidoM,id_especialidad=@idEspecialidad,sexo=@sexo where id_usuarios=@id
    end
    else
    begin
    update Tbl_Administradores set nombre=@nombre,apellido_paterno=@apellidoP,apellido_materno=@apellidoM,id_especialidad=@idEspecialidad,sexo=@sexo where id_usuarios=@id
    end

END

代码:

public static EntUsuario Actualizar(int idU,string nombre, string Apellidop,string ApellidoM,int IdEsp,string sexo)
{
    EntUsuario obj = null;
    SqlCommand cmd = null;
    SqlDataReader dr = null;
    try
    {
        Conexion cn = new Conexion( );
        SqlConnection cnx = cn.conectar();
        cmd = new SqlCommand("añadirinfocontacto", cnx);
        cmd.Parameters.AddWithValue("@id", idU);
        cmd.Parameters.AddWithValue("@nombre", nombre);
        cmd.Parameters.AddWithValue("@apellidoP", Apellidop);
        cmd.Parameters.AddWithValue("@apellidoM", ApellidoM);
        cmd.Parameters.AddWithValue("@idEspecialidad", IdEsp);
        cmd.Parameters.AddWithValue("@sexo", sexo);
        cmd.CommandType = CommandType.StoredProcedure;

        cnx.Open();
        cmd.ExecuteNonQuery();
        cnx.Close();


    }
    catch (Exception e)
    {
        obj = null;

    }
    finally
    {
        cmd.Connection.Close();
    }
    return obj;

}

和 Cick 按钮事件

protected void btnConfirmar_Click(object sender, EventArgs e)
        {
            Guid guid = (Guid)Membership.GetUser().ProviderUserKey;
            EntUsuario obj = GbUsuario.Actualizar(Convert.ToInt32(guid),txtNombre.Text,txtApP.Text,txtApM.Text,Convert.ToInt32(dpEspecialidad.SelectedValue),RadioButtonList1.SelectedValue);

        }

我想获取用户的 ID 但我不知道该怎么做,我已经阅读了有关 Session["user_id"]、Membership.getUser 的内容,我还阅读了我需要配置 web.config。

如果我使用上面的示例代码,我使用 Membership.getUser 但出现一个错误,说它无法连接到数据库

enter code here您可以使用以下代码获取当前用户:

var user = System.Web.HttpContext.Current.User

您可以通过将其添加到 web.config 来强制用户登录:

<configuration>
    <system.web>
        <authentication mode="Windows" />
         <authorization>
             <deny users="?"/>
          </authorization>
    </system.web>
</configuration>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM