听起来像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