我遇到了 ASP.net 应用程序的身份验证问题。这是有效的,现在由于某种原因已经停止。我有一个连接到 SQL 数据库以进行简单数据输入的 Web 表单。我正在尝试在后台捕获用户名和时间以包含在条目中。我在 web.config 文件中有以下代码:
<authentication mode="Windows"/>
这是在 system.web 分组中。
我在 Web 表单的 .cs 文件中设置了以下例程:
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 = "";
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
UserName = HttpContext.Current.User.Identity.Name.ToString();
}
else
{
UserName = "UnauthenticatedUser";
}
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();
在 IIS 中,我禁用了匿名身份验证。我已启用 asp.net 模拟和 Windows 身份验证。
当我第一次设置它时,我正在为用户获取一个域和 id。现在,当我访问该站点时,不会提示我输入用户名和密码。这种身份验证的东西真的很痛苦。
我使用 Firefox 作为浏览器。我也在 Safari 上尝试过,结果相同。
非常感谢任何帮助。