User.Identity.Name 我认为它比较好点.前提是验证Form模,使用FormsAuthenticationTicket创建一个Cookie并回发到客户端,并存储角色到票据
User.Identity.Name 占用的也是服务器资源,超时不太是清楚.
[quote]
Forms 身份验证提供了一种方法,使您可以使用自己的代码对用户进行身份验证,然后将身份验证标记保留在 Cookie 或页的 URL 中。Forms 身份验证通过 FormsAuthenticationModule 参与 ASP.NET 页的生命周期。可以通过 FormsAuthentication 类访问 Forms 身份验证信息和功能。
若要使用 Forms 身份验证,可以创建一个登录页。该登录页既收集了用户的凭据,又包括验证这些凭据时所需的代码。如果这些凭据有效,可以调用 FormsAuthentication 类的方法,以便使用适当的身份验证票证 (Cookie) 将请求重定向到最初请求的资源。如果不需要进行重定向,只需获取 Forms 身份验证 Cookie 或对其进行设置即可。
使用 authentication 配置元素对 Forms 身份验证进行配置。最简单的情况是,在 Web.config 文件或单独的文件中,可以通过指定 URL 将未经身份验证的请求重定向到某个登录页,然后提供该登录页的最小实现,并提供有效的凭据。下面的示例演示配置文件的一部分。该配置文件为 Authenticate 方法指定了登录页和身份验证凭据。密码已经使用 HashPasswordForStoringInConfigFile 方法进行加密。
复制代码
<authentication mode="Forms">
<forms name="SavingsPlan" loginUrl="/Logon.aspx">
<credentials passwordFormat="SHA1">
<user name="Kim"
password="07B7F3EE06F278DB966BE960E7CBBD103DF30CA6"/>
<user name="John"
password="BA56E5E0366D003E98EA1C7F04ABF8FCB3753889"/>
</credentials>
</forms>
</authentication>
成功通过身份验证之后,FormsAuthenticationModule 模块将会使用经过身份验证的用户信息填充当前的 User 属性。下面的代码示例演示如何以编程方式读取经过 Forms 身份验证的用户的标识。
C# code
String authUser2 = User.Identity.Name;
Forms 身份验证、ASP.NET 成员资格和登录控件
使用 Forms 身份验证的简便方法是,使用 ASP.NET 成员资格和 ASP.NET 登录控件。ASP.NET 成员资格提供了一种存储和管理信息的方法,它包括各种用户身份验证方法。ASP.NET 登录控件使用 ASP.NET 成员资格并封装提示用户输入凭据时所需的逻辑、验证用户或恢复或替换密码等。事实上,ASP.NET 成员资格和 ASP.NET 登录控件在 Forms 身份验证中提供了一个抽象层,可以替换使用 Forms 身份验证时必须执行的大部分或全部工作。有关更多信息,请参见使用成员资格管理用户和 ASP.NET 登录控件概述。
[/quote]
以上内容摘自MSDN
“Forms 身份验证提供程序”-“ASP.NET 窗体身份验证概述”