我认为您应该看看 asp.net 的表单身份验证。
网络配置:
<authentication mode="Forms">
<forms name=".ASPXFORMSAUTH" loginUrl="/Login.aspx" timeout="120" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
在您设法使用 ldap 登录访问者后,您可以使用非常少的代码在您的 Web 应用程序中登录该访问者:
PrincipalInfo.CurrentPrincipal = PrincipalInfo.CreatePrincipal(userName);
FormsAuthentication.SetAuthCookie(userName, true);
我也会给你一个关于使用 Session 的建议。Jeffery 为您提供了一个如何使用 Session 对象的简单示例。但是不要在 Session 中存储多个单个值;而是创建一个像“VisitorInformation”这样的类,其中包含您需要的所有属性。然后制作一个静态管理器来设置和获取访问者信息。
Visitor visitor = VisitorManager.CurrentVisitor;
string name = visitor.Name;
int age = visitor.Age;
private const visitorSessionKey = "visitorSessionkey";
public static Visitor CurrentVisitor
{
{
get { return (Visitor)Session[visitorSessionKey] ?? new Visitor(); }
}
}
This way you won't sprinkle your code with calls to session all over the place, with the increasing risk of spelling a key wrong or getting values out of sync.