求助关于.net的身份认证问题
本帖最后由 ss27588709 于 2013-07-13 19:43:47 编辑
当用户登录成功后,使用:
FormsAuthentication.SetAuthCookie(userName, false)颁发身份认证。
userName不是空的。
即便在同一个页面,不跳转,继续使用HttpContext.Current.User.Identity.Name时,发现为空。或者HttpContext.Current.User.Identity.IsAuthenticated发现是false。
通过IIS日志查询,发现.ASPXAUTH却是有值的。
在Web.config我的配置是
xxxxx是我网站的域名。
<authentication mode="Forms">
<forms loginUrl="Account/Login.aspx" domain="xxxxx" protection="All" timeout="60" name=".ASPXAUTH" path="/" slidingExpiration="true" defaultUrl="~/" cookieless="UseDeviceProfile" enableCrossAppRedirects="false" />
</authentication>
有朋友遇见过这样的问题吗?求解答。
并不是所有的用户都会出现这样的情况,大概有百分之1的样子。浏览器一般为IE8
------解决方案--------------------需要给用户授予登陆的票据FormsAuthenticationTicket参考
http://blog.csdn.net/byondocean/article/details/7164117
------解决方案--------------------你需要在Global.asax中增加一些设置。例如:
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
if (HttpContext.Current.User != null)
{
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
if (HttpContext.Current.User.Identity is FormsIdentity)
{
FormsIdentity id = (FormsIdentity)HttpContext.Current.User.Identity;