รบกวนสอบถามเรื่อง WebConfig ในการ Login 2 แบบหน่อยครับ Web (ASP.NET), C#
มันไม่ใช่อะไรที่สามารถอธิบายได้ภายใน 4-5 บรรทักหรอกนะ
แนะนำให้ศึกษา membership & role ซะ
Date :
2012-06-26 16:20:22
By :
อิอิ
จริงๆแค่จะถาม web config backend ผมทำเสร็จมาเป็นปีแล้วครับ เว็บก้ใช้ไปเป็นปีแล้วด้วย เพียงแต่ผู้บริหาาร ต้องการให้มีสมาชิกสั่งสินค้าผ่านเน็ตได้ ผมเลยคิดว่า จะแยกในส่วนของสมาชิกออกมา ไม่อยากใช้ หน้า login เดียวกัน กับ backend แต่พอทำแล้วก้error ไม่ใช่ว่าไม่เคยศึกษา
Date :
2012-06-26 17:06:08
By :
hackerdemo
จะแยกหรือไม่แยกก็ได้ครับ แต่ควรแยกเพื่อความปลอดภัยครับ ส่วน error อะไรลองเอามาดูครับ
Date :
2012-06-27 06:32:09
By :
mr.win
อ่ะ เอาโค้ดมาดู
เดี๋ยวคนมีความรู้ งูๆ ปลา จะช่วยเอง
แยก web.config น่ะถูกแล้ว แต่อยากดูที่ config ซะหน่อย แต่งวดนี้อาจจะต้องใช้ role ช่วยนิดนึง
ไม่รู้ได้ออกแบบไว้ไหม
Date :
2012-06-27 09:09:32
By :
อิอิ
เอาแบบง่ายๆ เลย
ไฟล์ทั้งหมด
1. ~/Login.aspx
2. ~/UserLogin.aspx
3. ~/Web.config
4. ~/Admin/AdminLogin.aspx
5. ~/Admin/Web.config
Login.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Login" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>
Login.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Request["ReturnUrl"] != null)
{
char[] chs = { '/' };
string[] strs = Request["ReturnUrl"].Split(chs);
if (strs[1] == "Admin")
{
Response.Redirect("~/Admin/Login.aspx");
}
else
{
Response.Redirect("~/UserLogin.aspx");
}
}
else
{
Response.Redirect("~/UserLogin.aspx");
}
}
}
UserLogin.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="UserLogin.aspx.cs" Inherits="UserLogin" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
User
</div>
</form>
</body>
</html>
Web.config
<?xml version="1.0"?>
<configuration>
<system.web>
<authentication mode="Forms">
<forms name=".ASPXFORMSAUTH" loginUrl="Login.aspx" defaultUrl="Login.aspx"></forms>
</authentication>
<authorization>
<deny users="?" />
</authorization>
</system.web>
<location path="UserLogin.aspx">
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
</configuration>
Date :
2012-06-28 10:26:45
By :
อิอิ
ใน folder admin
Login.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Admin_Login" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
Admin
</div>
</form>
</body>
</html>
Web.config
<?xml version="1.0"?>
<configuration>
<location path="Login.aspx">
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
</configuration>
Date :
2012-06-28 10:28:09
By :
อิอิ
ถามหน่อยครับ ถ้า admin logout มันจะ redirect ไปยังหน้าไหนครับ ผมอยากให้มัน redirect ไปยัง AdminLogin.aspx คือแยกส่วนกันไปเลย user กับ admin
ประวัติการแก้ไข 2012-06-28 11:52:49
Date :
2012-06-28 11:51:58
By :
hackerdemo
ไม่รู้ไม่ได้ลอง
แต่ถ้าไฟล์ logout มันอยู่ใน folder เดียวกับ admin มันก็ redirect กลับไปที่ login ของ admin เองแหละ
เพราะมัน check จาก folder (ดูโค้ดไฟล์ login.aspx.cs ที่วางใน root)
Date :
2012-06-28 11:55:33
By :
อิอิ
ทำได้แล้วครับ ตอน logout ผมใช้
Session.Abandon();
Session.RemoveAll();
Response.Redirect("login.aspx");
ขอบคุณมากๆครับ
Date :
2012-06-28 13:59:34
By :
hackerdemo
Load balance : Server 03