我正在使用以下内容将当前用户名存储在一个变量中,该变量传递给我的存储过程,然后传递给我的数据库。这是通过单击按钮启动的。
string UserName = Page.User.Identity.Name.ToString();
使用以下命令发送变量:
cmd.Parameters.AddWithValue("@UserName", UserName);
我在 Web Developer 2008 Express 中创建了一个 Web 表单,当我在 Web Developer 中显示浏览器时,我得到了想要的结果。当我从运行在 Mac 上的本机浏览器 (Firefox) 运行网页时,我什么也得不到。Web Developer 在 Windows 2008 Server 安装上运行。我需要为 Mac 做一些不同的事情吗?我将有大多数用户使用 Mac 而不是 Windows。
这是来自 aspx.cs 的代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
namespace WebApplication1
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
}
protected void MasterData_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{
}
protected void btnUpdate_Click(object sender, EventArgs e)
{
using (SqlConnection con = new SqlConnection("server=(local);database=InvoiceSHC;Trusted_Connection=Yes"))
{
// Get the UserId of the logged in user
string UserName = HttpContext.Current.User.Identity.Name.ToString();
string Timestamp = DateTime.Now.ToString();
//Not sure why you need a SqlDataAdapter unused here.
//SqlDataAdapter DA = new SqlDataAdapter("UpdateSHCInvoice", con);
SqlCommand cmd = new SqlCommand("UpdateSHCInvoice", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Ref", dlRef.SelectedItem.Value);
cmd.Parameters.AddWithValue("@PhaseName", dlPhase.SelectedItem.Value);
cmd.Parameters.AddWithValue("@PageType", dlPageType.SelectedItem.Value);
cmd.Parameters.AddWithValue("@Page", tbPage.Text);
cmd.Parameters.AddWithValue("@Percent", dlPercent.SelectedItem.Value);
cmd.Parameters.AddWithValue("@ChngType", dlChngType.SelectedItem.Value);
cmd.Parameters.AddWithValue("@UserName", UserName);
cmd.Parameters.AddWithValue("@Timestamp",Timestamp);
con.Open();
cmd.ExecuteNonQuery();
GridView1.DataBind();
}
}
}
}