ユーザーの画面の上部にツールバーを表示しようとしています。ツールバーがログインしていれば、アカウントにアクセスできます。ログインしていない場合は、ログインするにはどうすればいいですか?C#とRazorを使ってこれをどうやって行い、構文とコンパイルのエラーが発生するかは完全にはわかりません。クッキーが設定されているかどうかを確認する
私の現在のフォームは次のとおりです。私は1つのファイル、_siteLayout.cshtmlを持っています。これにより、ツールバーが画面上部に保存されます。ログインフォームを外部データベースと照合し、認証されていれば、クライアントはCookieを作成します。私が本質的に望む形は、
if(user logged in)
render account management page
else{
render login page
}
シンプルですが、私は多くの問題に遭遇しています。これまでのコードを削除して、これまでのところバルクを削除しています:
<body>
@using System.Text;
@using System.Net.Sockets;
@{
if(Request.Cookies["mpUsername"] == null){
//if user is not logged in
//some authentication is ran, if passed, isValid is set to true
if (isValid) {
//login is valid, set cookie
HttpCookie cookie = Request.Cookies.Get("mpUsername");
if(cookie == null) {
cookie = new HttpCookie("mpUsername");
cookie.Value = username;
cookie.Expires = DateTime.Now.AddDays(3);
Response.Cookies.Add(cookie);
}
} else {
//login invalid, prompt for pass again
<text>Password incorrect, please try again</text>
}
}
}
}//end of razor, HTML begins
<html>
<body>
@{ //if cookie is set
//if(Request.Cookies["mpUsername"] == null){
}
<h2>ACCOUNT MANAGEMENT</h2>
@{
} else {//user not logged in, cookie not set
}
//login form
</body>
</html>
私がやりたいことをする最善の方法は何ですか?私の実際のコードでは、ログインフォームとアカウント管理のページは明らかにはるかに大きいので、もう少し混乱しています。
FormsAuthenticationの使用を検討しましたか? http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.aspx –
はい、私は認証を実行する方法をサポートするとは思わない - 私はユーザーのログイン情報を確認していますローカルに格納されているサーバーではなくリモートサーバーに対して実行されます。 –
私はPauliに同意します - 組み込みシステムを使用してください。何かを見逃したり、セキュリティホールを開いたままにするのはとても簡単です。 – Paddy