ログインページがあり、次のイベントハンドラーを呼び出します。
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
if (Login1.UserName == "abc" && Login1.Password == "1234"){
if (Request["ReturnUrl"] != null)
{
FormsAuthentication.SetAuthCookie(userName, false, "AdminPart/AdminHome.aspx");
FormsAuthentication.RedirectFromLoginPage(userName, Login1.RememberMeSet);
}
else
{
FormsAuthentication.SetAuthCookie(userName, false, "AdminPart/AdminHome.aspx");
Response.Redirect("HomePage.aspx");
}
}
}
そして私のweb.configファイルは次のようなものです:
<system.web>
<authorization>
<deny users="?" />
</authorization>
現在、HomePage.aspx.csで認証されたユーザーのユーザー名を取得しようとしていUser.Identity.Name
ますが、コンピューターの名前が返されます。次のコードを設定ファイルに追加しようとしました:
<authentication mode="Forms">
<forms loginUrl="~/login.aspx" timeout="10" protection="All"></forms>
</authentication>
しかし、この行で再び問題が発生しました<authentication mode="Forms">
。<% Page ... %>
この行を追加した後、ホームページで、IDEは、ランタイムエラーが発生するという警告を最初の行に表示しました。
使用HttpContext.Current.User.Identity.Name
しましたが、動作しません。プロジェクトのさまざまな部分で認証されたユーザーの名前を取得しようとしています。したがって、必要に応じてロジックを変更できます。どんな助けでもありがたいです。
編集:Windows 7(64ビット)でVisual Web Devepoler2008Expressを使用しています。
EDIT2:問題はどういうわけか解決しました。答えは以下の通りです。どのように?なんで?プログラムで行うことはできませんか?わからない、理由を知りたい。