助けてください!!私はVisualStudioを使用しており、ASP.NET C#(.Net 4)でプログラミングしています。私はPHP変換であり、セッションを使用して単純なログインページを作成しようとしています。ASP.NETはまったく新しいので、インターネット上のどこかからこのコードを使用しました。
Login.aspx:
<asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
<asp:TextBox ID="txtPassword" runat="server"></asp:TextBox>
<asp:Button ID="submit" runat="server" Text="Submit" onclick="submit_Click" />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
Login.aspx.cs:
protected void send_Click(object sender, EventArgs e)
{
if (txtUserName.Text == "admin" && txtPassword.Text == "admin")
{
Session["Authenticate"] = "Yes";
Response.Redirect("Default.aspx");
}
else
Label1.Text = "Login failed";
}
Global.asax.cs
void Session_Start(object sender, EventArgs e)
{
// Code that runs when a new session is started
Session["Authenticate"] = "";
CheckLogin();
}
void Application_OnPostRequestHandlerExecute()
{
CheckLogin();
}
void CheckLogin()
{
string Url = Request.RawUrl;
int count = Url.Length - 10;
string TestUrl = Url.Substring(count);
string SessionData = Session["Authenticate"].ToString();
if (SessionData == "" && TestUrl != "Login.aspx")
{
Response.Redirect("~/Login.aspx");
}
}
このコードをブラウザで実行しようとすると、CSSファイルが読み込まれません。これは、global.asaxファイルにリンクされているように見えます。これは、global.asax.csスニペットで上記のすべてのコードをコメントアウトするとcssが正しく読み込まれるためです。
ソースコードを介してブラウザでcssファイルを開こうとしましたが、次のエラーが発生します。
Session state is not available in this context.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Web.HttpException: Session state is not available in this context.
Source Error:
Line 45: int count = Url.Length - 10;
Line 46: string TestUrl = Url.Substring(count);
Line 47: string SessionData = Session["Authenticate"].ToString();
Line 48: if (SessionData == "" && TestUrl != "Login.aspx")
Line 49: {
Source File: D:\MyTestWebsite\Global.asax.cs Line: 47
また、App_Themesを使用してテーマを使用してみましたが、Web.configで定義すると同じ問題が発生します。cssは、セッション関連のコードが削除された場合にのみ表示されます。
これを引き起こしているものは何ですか?