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でもこれを試しましたが、同じ結果が得られました。
どんな支援も大歓迎です。