关于.Net Windows身份验证

时间:2015-09-09 15:28:19

标签: .net session authentication

我有一个设置为使用Windows身份验证的Web应用程序。这是全州人民使用的。这些用户不在我们的AD中,并且在尝试登录时会对数据库进行身份验证。成功登录后,用户可以访问的资源将作为位存储在会话中。

对于每个后续请求,我们检查会话变量以查看它是否是有效请求以及用户是否有权访问资源。我们不使用Forms身份验证。

随着用户数量的增长,我担心会话状态的大小。如何在不使用会话变量的情况下更好地处理身份验证/授权?这是一个使用2.0的.Net Web应用程序。

2 个答案:

答案 0 :(得分:0)

如果大小成为一个问题,那么你可以坚持这些位并根据需要进行查找 - 这听起来可能很昂贵,但是一些缓存可能会有很大帮助,因此活跃用户不会持续点击持久存储&非活跃用户不会占用内存。

答案 1 :(得分:0)

每个用户几位不会占用太多内存并影响网站的可扩展性。好吧,除非你有每个用户数千位。

然而,真正的性能影响可能来自计算每个用户可访问的所有资源的代码。如果该代码有点重,您可以考虑分散负载:

用户通过身份验证后,只需保存一个表示用户角色的值。然后,每当您需要检查用户是否有权访问特定资源时,您将从会话中检索角色值并使用它来确定用户是否有权访问。