聽起來像Forms Authentication可以處理你需要的東西。將以下行添加到您的根web.config
<authentication mode="Forms">
<forms name="XXXXX.ASPXAUTH" timeout="60" loginUrl="~/login.aspx" protection="All" path="/"></forms>
</authentication>
用任何你想調用你的cookie來替換XXX的。也可以將login.aspx重命名爲任何您命名的登錄頁面。此代碼會將未經身份驗證的任何人重定向到登錄頁面。
然後,在你登錄邏輯使用類似下面的C#代碼
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, txtUsername.Text,
DateTime.Now, DateTime.Now.AddMinutes(60), true, reader["user_level"] + "",
FormsAuthentication.FormsCookiePath);
string hash = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash);
if (ticket.IsPersistent) cookie.Expires = ticket.Expiration;
Response.Cookies.Add(cookie);
有了這個代碼,你會想在登錄者的用戶級別發送的(即管理員,用戶等)我有「讀者[...]
你需要做的最後一件事情是用它自己的web.config設置每個受保護的目錄,概述允許的用戶角色和被拒絕的角色。您在web.config中爲角色使用的名稱需要與發送到FormsAuthenticationTicket的值保持一致,並且您將很好。
它可能不是你正在尋找,但是有沒有原因,你沒有使用表單身份驗證?它完成了迄今爲止所描述的一切,與定製相比,可以節省一些時間。 – 2010-09-29 15:16:04
我會嘗試表單身份驗證,並讓你知道。 – 2010-09-29 15:28:46